From ed477f2a579abc313d5db92816b37808c92ce7f4 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 15:16:00 -0600 Subject: [PATCH 1/8] Set AWS_SWIFT_SDK_USE_LOCAL_DEPS before all CI runs --- .github/workflows/continuous-integration.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index dae71cd7311..6d857838d5e 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -42,7 +42,7 @@ jobs: run: | python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')" chmod a+x builder.pyz - AWS_CRT_SWIFT_CI_DIR="${{ env.AWS_CRT_SWIFT_CI_DIR }}" AWS_SDK_SWIFT_CI_DIR="${{ env.AWS_SDK_SWIFT_CI_DIR }}" SMITHY_SWIFT_CI_DIR="${{ env.SMITHY_SWIFT_CI_DIR }}" ./builder.pyz build -p ${{ env.PACKAGE_NAME }} --target=ios-armv8 + AWS_CRT_SWIFT_CI_DIR="${{ env.AWS_CRT_SWIFT_CI_DIR }}" AWS_SDK_SWIFT_CI_DIR="${{ env.AWS_SDK_SWIFT_CI_DIR }}" SMITHY_SWIFT_CI_DIR="${{ env.SMITHY_SWIFT_CI_DIR }}" AWS_SWIFT_SDK_USE_LOCAL_DEPS=1 ./builder.pyz build -p ${{ env.PACKAGE_NAME }} --target=ios-armv8 macos-compat: runs-on: macos-11 env: @@ -65,7 +65,7 @@ jobs: run: | python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')" chmod a+x builder.pyz - AWS_CRT_SWIFT_CI_DIR="${{ env.AWS_CRT_SWIFT_CI_DIR }}" AWS_SDK_SWIFT_CI_DIR="${{ env.AWS_SDK_SWIFT_CI_DIR }}" SMITHY_SWIFT_CI_DIR="${{ env.SMITHY_SWIFT_CI_DIR }}" ./builder.pyz build -p ${{ env.PACKAGE_NAME }} + AWS_CRT_SWIFT_CI_DIR="${{ env.AWS_CRT_SWIFT_CI_DIR }}" AWS_SDK_SWIFT_CI_DIR="${{ env.AWS_SDK_SWIFT_CI_DIR }}" SMITHY_SWIFT_CI_DIR="${{ env.SMITHY_SWIFT_CI_DIR }}" AWS_SWIFT_SDK_USE_LOCAL_DEPS=1 ./builder.pyz build -p ${{ env.PACKAGE_NAME }} linux-compat: runs-on: ubuntu-latest strategy: @@ -92,5 +92,6 @@ jobs: --env AWS_CRT_SWIFT_CI_DIR="/root/${{ env.PACKAGE_NAME }}/target/build/deps/aws-crt-swift" \ --env AWS_SDK_SWIFT_CI_DIR="/root/${{ env.PACKAGE_NAME }}" \ --env SMITHY_SWIFT_CI_DIR="/root/${{ env.PACKAGE_NAME }}/target/build/deps/smithy-swift" \ + --env AWS_SWIFT_SDK_USE_LOCAL_DEPS=1 \ --env AWS_ACCESS_KEY_ID --env AWS_SECRET_ACCESS_KEY --env AWS_DEFAULT_REGION --env CXXFLAGS \ $DOCKER_IMAGE build -p ${{ env.PACKAGE_NAME }} --build-dir=/root/${{ env.PACKAGE_NAME }} --spec=downstream From b482811ad99863458b4f974e7621644f0fd24832 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 15:16:27 -0600 Subject: [PATCH 2/8] Bump smithy-swift to 0.10.2 --- Package.swift | 2 +- packageDependencies.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 801a5de8a17..e720c54e380 100644 --- a/Package.swift +++ b/Package.swift @@ -1064,6 +1064,6 @@ case (false, true): ] case (false, false): package.dependencies += [ - .package(url: "https://github.com/awslabs/smithy-swift", .exact("0.10.1")) + .package(url: "https://github.com/awslabs/smithy-swift", .exact("0.10.2")) ] } diff --git a/packageDependencies.plist b/packageDependencies.plist index d00720b7bdb..d592da0329a 100644 --- a/packageDependencies.plist +++ b/packageDependencies.plist @@ -3,7 +3,7 @@ clientRuntimeVersion - 0.10.1 + 0.10.2 awsCRTSwiftVersion 0.5.4 clientRuntimeBranch From b8710e47c17e14905949d1847c78890ad671573d Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 15:26:19 -0600 Subject: [PATCH 3/8] Remove extraneous name from release workflow def --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8da0c2d8e1a..da28ac54700 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,7 +51,6 @@ jobs: ./gradlew -p codegen/sdk-codegen stageSdks ./gradlew --stop ./scripts/mergeModels.sh Sources/Services - - name: Generate Package.swift ./scripts/generatePackageSwift.swift > Package.swift cat Package.swift swift build --build-tests From ab514d3dcf78881d313b3a66fa94531496082b81 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 18:12:18 -0600 Subject: [PATCH 4/8] Fix path for committing changes to services --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index da28ac54700..3bc35da7d91 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,4 +61,4 @@ jobs: author_name: AWS CI author_email: nobody@amazonaws.com message: 'aws-sdk-swift release build artifacts' - add: 'release Package.swift' + add: 'Sources/Services/* Package.swift' From e2b936f31cb4d1c9d0ee251396657a186f721e3e Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 18:27:35 -0600 Subject: [PATCH 5/8] Fix paths and env vars in release workflow --- .github/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3bc35da7d91..8bd6d59c9bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,6 +51,8 @@ jobs: ./gradlew -p codegen/sdk-codegen stageSdks ./gradlew --stop ./scripts/mergeModels.sh Sources/Services + - name: Generate SDK and Swift package manifest + run: | ./scripts/generatePackageSwift.swift > Package.swift cat Package.swift swift build --build-tests @@ -61,4 +63,7 @@ jobs: author_name: AWS CI author_email: nobody@amazonaws.com message: 'aws-sdk-swift release build artifacts' - add: 'Sources/Services/* Package.swift' + add: + - Sources/Services/* + - Tests/Services/* + - Package.swift From 28ddada1d903c737131bd03007336b40bfc9a90d Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 18:33:12 -0600 Subject: [PATCH 6/8] Fix yaml --- .github/workflows/release.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8bd6d59c9bb..db12af53b09 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -63,7 +63,4 @@ jobs: author_name: AWS CI author_email: nobody@amazonaws.com message: 'aws-sdk-swift release build artifacts' - add: - - Sources/Services/* - - Tests/Services/* - - Package.swift + add: '["Sources/Services/*", "Tests/Services/*", "Package.swift"]' From cc9cfe155490d54d80ce7dfefa4d36cd937e84f4 Mon Sep 17 00:00:00 2001 From: AWS CI Date: Thu, 19 Jan 2023 02:27:21 +0000 Subject: [PATCH 7/8] aws-sdk-swift release build artifacts --- Package.swift | 6 + Sources/Services/AWSACM/Paginators.swift | 23 +- Sources/Services/AWSACMPCA/ACMPCAClient.swift | 199 +- .../AWSACMPCA/ACMPCAClientProtocol.swift | 86 +- .../Services/AWSACMPCA/EndpointResolver.swift | 6 +- Sources/Services/AWSACMPCA/Paginators.swift | 69 +- .../Services/AWSACMPCA/models/Models.swift | 119 +- .../Services/AWSAPIGateway/Paginators.swift | 276 +- .../AWSAccessAnalyzer/Paginators.swift | 138 +- .../AWSAccount/EndpointResolver.swift | 2 +- .../AWSAlexaForBusiness/Paginators.swift | 306 +- .../AmplifyBackendClient.swift | 157 +- .../AmplifyBackendClientProtocol.swift | 2 +- .../AWSAmplifyBackend/EndpointResolver.swift | 6 +- .../AWSAmplifyBackend/models/Models.swift | 58 +- .../Services/AWSAppConfig/Paginators.swift | 136 +- Sources/Services/AWSAppMesh/Paginators.swift | 23 +- .../AWSAppRunner/AppRunnerClient.swift | 175 +- .../AWSAppRunner/EndpointResolver.swift | 6 +- .../Services/AWSAppRunner/Paginators.swift | 136 +- .../Services/AWSAppRunner/models/Models.swift | 60 +- .../Services/AWSAppStream/Paginators.swift | 34 +- Sources/Services/AWSAppflow/Paginators.swift | 85 +- .../ApplicationAutoScalingClient.swift | 54 +- ...ApplicationAutoScalingClientProtocol.swift | 4 +- .../EndpointResolver.swift | 6 +- .../Paginators.swift | 93 +- .../models/Models.swift | 189 +- .../Paginators.swift | 17 +- .../Paginators.swift | 34 +- .../AWSApplicationInsights/Paginators.swift | 102 +- Sources/Services/AWSAthena/Paginators.swift | 262 +- .../AWSAuditManager/AuditManagerClient.swift | 328 +- .../AuditManagerClientProtocol.swift | 25 +- .../AWSAuditManager/EndpointResolver.swift | 6 +- .../Services/AWSAuditManager/Paginators.swift | 272 +- .../AWSAuditManager/models/Models.swift | 136 +- .../Services/AWSAutoScaling/Paginators.swift | 184 +- Sources/Services/AWSBackup/Paginators.swift | 367 +- .../AWSBackupStorage/Paginators.swift | 34 +- Sources/Services/AWSBatch/Paginators.swift | 115 +- .../EndpointResolver.swift | 2 +- .../AWSBillingconductor/Paginators.swift | 46 +- .../AWSBillingconductor/models/Models.swift | 54 +- .../AWSBudgets/EndpointResolver.swift | 2 +- Sources/Services/AWSBudgets/Paginators.swift | 178 +- .../Services/AWSChime/EndpointResolver.swift | 2 +- Sources/Services/AWSChime/Paginators.swift | 442 +- .../AWSChimeSDKIdentity/Paginators.swift | 68 +- .../Paginators.swift | 34 +- .../AWSChimeSDKMeetings/Paginators.swift | 17 +- .../AWSChimeSDKMessaging/Paginators.swift | 187 +- .../AWSChimeSDKVoice/Paginators.swift | 148 +- .../AWSCleanRooms/CleanRoomsClient.swift | 1444 +++ .../CleanRoomsClientProtocol.swift | 82 + .../AWSCleanRooms/EndpointResolver.swift | 131 + .../Services/AWSCleanRooms/Paginators.swift | 5 + .../AWSCleanRooms/models/Models.swift | 8864 +++++++++++++++++ Sources/Services/AWSCloud9/Cloud9Client.swift | 65 +- .../Services/AWSCloud9/EndpointResolver.swift | 6 +- Sources/Services/AWSCloud9/Paginators.swift | 34 +- .../Services/AWSCloudControl/Paginators.swift | 46 +- .../AWSCloudDirectory/Paginators.swift | 323 +- .../AWSCloudFormation/Paginators.swift | 350 +- .../AWSCloudFront/EndpointResolver.swift | 2 +- .../Services/AWSCloudFront/Paginators.swift | 92 +- .../Services/AWSCloudHSMV2/Paginators.swift | 51 +- .../Services/AWSCloudTrail/Paginators.swift | 206 +- .../Services/AWSCloudWatch/Paginators.swift | 171 +- .../CloudWatchLogsClient.swift | 14 +- .../CloudWatchLogsClientProtocol.swift | 14 +- .../AWSCloudWatchLogs/Paginators.swift | 155 +- .../AWSCloudWatchLogs/models/Models.swift | 16 +- .../Services/AWSCodeBuild/Paginators.swift | 276 +- .../Services/AWSCodeCommit/Paginators.swift | 233 +- .../Services/AWSCodeDeploy/Paginators.swift | 138 +- .../AWSCodeGuruProfiler/Paginators.swift | 17 +- .../AWSCodeGuruReviewer/Paginators.swift | 74 +- .../Services/AWSCodePipeline/Paginators.swift | 102 +- .../AWSCodeStarconnections/Paginators.swift | 34 +- .../Services/AWSCodeartifact/Paginators.swift | 138 +- .../AWSCodestarnotifications/Paginators.swift | 69 +- .../AWSCognitoIdentity/Paginators.swift | 23 +- .../Paginators.swift | 207 +- .../Services/AWSComprehend/Paginators.swift | 250 +- .../AWSComputeOptimizer/Paginators.swift | 115 +- .../AWSConfigService/Paginators.swift | 860 +- Sources/Services/AWSConnect/Paginators.swift | 902 +- .../Services/AWSConnect/models/Models.swift | 6 + .../AWSConnectCampaigns/Paginators.swift | 23 +- .../AWSConnectContactLens/Paginators.swift | 17 +- .../AWSConnectParticipant/Paginators.swift | 17 +- .../Services/AWSControlTower/Paginators.swift | 23 +- .../AWSCostExplorer/EndpointResolver.swift | 2 +- .../Services/AWSCostExplorer/Paginators.swift | 68 +- .../Paginators.swift | 17 +- Sources/Services/AWSDataBrew/Paginators.swift | 184 +- .../Services/AWSDataExchange/Paginators.swift | 115 +- .../Services/AWSDataPipeline/Paginators.swift | 69 +- Sources/Services/AWSDataSync/Paginators.swift | 115 +- .../Paginators.swift | 408 +- .../Services/AWSDetective/Paginators.swift | 85 +- .../Services/AWSDevOpsGuru/Paginators.swift | 256 +- .../Services/AWSDeviceFarm/Paginators.swift | 384 +- .../AWSDirectoryService/Paginators.swift | 316 +- Sources/Services/AWSDocDB/Paginators.swift | 299 +- .../Services/AWSDocDBElastic/Paginators.swift | 46 +- Sources/Services/AWSDrs/Paginators.swift | 46 +- .../AWSDynamoDB/EndpointResolver.swift | 2 +- Sources/Services/AWSDynamoDB/Paginators.swift | 120 +- .../AWSDynamoDBStreams/EndpointResolver.swift | 2 +- Sources/Services/AWSEBS/Paginators.swift | 34 +- Sources/Services/AWSEC2/EC2Client.swift | 35 +- .../Services/AWSEC2/EC2ClientProtocol.swift | 43 +- Sources/Services/AWSEC2/Paginators.swift | 2990 +++--- Sources/Services/AWSEC2/models/Models.swift | 180 +- Sources/Services/AWSECR/Paginators.swift | 126 +- .../AWSECRPUBLIC/ECRPUBLICClient.swift | 141 +- .../ECRPUBLICClientProtocol.swift | 28 +- .../AWSECRPUBLIC/EndpointResolver.swift | 6 +- .../Services/AWSECRPUBLIC/Paginators.swift | 92 +- .../Services/AWSECRPUBLIC/models/Models.swift | 336 +- Sources/Services/AWSECS/Paginators.swift | 207 +- Sources/Services/AWSEFS/Paginators.swift | 68 +- Sources/Services/AWSEKS/Paginators.swift | 161 +- Sources/Services/AWSEMR/Paginators.swift | 247 +- .../EMRServerlessClient.swift | 75 +- .../AWSEMRServerless/EndpointResolver.swift | 6 +- .../AWSEMRServerless/models/Models.swift | 273 +- .../AWSEMRcontainers/Paginators.swift | 92 +- .../Services/AWSElastiCache/Paginators.swift | 391 +- .../AWSElasticBeanstalk/Paginators.swift | 86 +- .../AWSElasticInference/Paginators.swift | 17 +- .../AWSElasticLoadBalancing/Paginators.swift | 23 +- .../Paginators.swift | 69 +- .../AWSElasticTranscoder/Paginators.swift | 92 +- .../AWSElasticsearchService/Paginators.swift | 204 +- .../AWSEventBridge/EndpointResolver.swift | 2 +- Sources/Services/AWSFMS/Paginators.swift | 138 +- Sources/Services/AWSFSx/Paginators.swift | 182 +- .../Services/AWSFinspacedata/Paginators.swift | 115 +- Sources/Services/AWSFis/Paginators.swift | 68 +- Sources/Services/AWSForecast/Paginators.swift | 322 +- .../AWSFraudDetector/Paginators.swift | 238 +- Sources/Services/AWSGameLift/Paginators.swift | 523 +- .../Services/AWSGameSparks/Paginators.swift | 161 +- Sources/Services/AWSGlacier/Paginators.swift | 92 +- .../AWSGlobalAccelerator/Paginators.swift | 201 +- Sources/Services/AWSGlue/Paginators.swift | 682 +- .../Services/AWSGreengrassV2/Paginators.swift | 161 +- .../Services/AWSGuardDuty/Paginators.swift | 241 +- .../Services/AWSHealth/EndpointResolver.swift | 2 +- Sources/Services/AWSHealth/Paginators.swift | 161 +- .../Services/AWSHealthLake/Paginators.swift | 51 +- .../Services/AWSHoneycode/Paginators.swift | 68 +- .../Services/AWSIAM/EndpointResolver.swift | 2 +- Sources/Services/AWSIAM/Paginators.swift | 609 +- .../AWSIdentitystore/Paginators.swift | 23 +- .../AWSImagebuilder/EndpointResolver.swift | 6 +- .../AWSImagebuilder/ImagebuilderClient.swift | 254 +- .../ImagebuilderClientProtocol.swift | 4 +- .../Services/AWSImagebuilder/Paginators.swift | 266 +- .../AWSImagebuilder/models/Models.swift | 207 +- .../Services/AWSInspector/Paginators.swift | 170 +- .../Services/AWSInspector2/Paginators.swift | 207 +- Sources/Services/AWSIoT/Paginators.swift | 1265 ++- .../AWSIoT1ClickProjects/Paginators.swift | 46 +- .../Services/AWSIoTAnalytics/Paginators.swift | 85 +- .../Services/AWSIoTDataPlane/Paginators.swift | 23 +- .../Services/AWSIoTFleetHub/Paginators.swift | 17 +- .../Services/AWSIoTFleetWise/Paginators.swift | 23 +- .../AWSIoTRoboRunner/Paginators.swift | 23 +- .../AWSIoTSecureTunneling/Paginators.swift | 17 +- .../Services/AWSIoTSiteWise/Paginators.swift | 442 +- .../AWSIoTThingsGraph/Paginators.swift | 230 +- .../Services/AWSIoTTwinMaker/Paginators.swift | 153 +- .../Services/AWSIoTWireless/Paginators.swift | 187 +- .../AWSIotDeviceAdvisor/Paginators.swift | 34 +- Sources/Services/AWSIvs/Paginators.swift | 102 +- Sources/Services/AWSIvschat/Paginators.swift | 34 +- Sources/Services/AWSKMS/Paginators.swift | 161 +- Sources/Services/AWSKafka/Paginators.swift | 184 +- .../Services/AWSKafkaConnect/Paginators.swift | 69 +- .../Services/AWSKendra/EndpointResolver.swift | 2 +- Sources/Services/AWSKendra/KendraClient.swift | 2 +- .../AWSKendra/KendraClientProtocol.swift | 2 +- Sources/Services/AWSKendra/Paginators.swift | 204 +- .../Services/AWSKendra/models/Models.swift | 35 +- .../AWSKendraRanking/EndpointResolver.swift | 126 + .../KendraRankingClient.swift | 568 ++ .../KendraRankingClientProtocol.swift | 32 + .../AWSKendraRanking/Paginators.swift | 25 + .../AWSKendraRanking/models/Models.swift | 2028 ++++ .../Services/AWSKeyspaces/Paginators.swift | 69 +- Sources/Services/AWSKinesis/Paginators.swift | 34 +- .../Services/AWSKinesisVideo/Paginators.swift | 69 +- .../AWSLakeFormation/Paginators.swift | 217 +- .../Services/AWSLambda/EndpointResolver.swift | 2 +- Sources/Services/AWSLambda/LambdaClient.swift | 20 +- .../AWSLambda/LambdaClientProtocol.swift | 25 +- Sources/Services/AWSLambda/Paginators.swift | 253 +- .../Services/AWSLambda/models/Models.swift | 209 +- .../Paginators.swift | 187 +- .../Services/AWSLexModelsV2/Paginators.swift | 255 +- .../Paginators.swift | 46 +- .../Paginators.swift | 92 +- .../AWSLightsail/EndpointResolver.swift | 6 +- .../AWSLightsail/LightsailClient.swift | 775 +- .../Services/AWSLightsail/models/Models.swift | 6 +- .../AWSLocation/EndpointResolver.swift | 6 +- .../Services/AWSLocation/LocationClient.swift | 271 +- .../AWSLocation/LocationClientProtocol.swift | 6 +- .../Services/AWSLocation/models/Models.swift | 68 +- .../AWSLookoutEquipment/Paginators.swift | 153 +- .../AWSLookoutMetrics/Paginators.swift | 136 +- .../AWSLookoutVision/Paginators.swift | 92 +- Sources/Services/AWSM2/Paginators.swift | 23 +- Sources/Services/AWSMTurk/Paginators.swift | 170 +- .../Services/AWSMWAA/EndpointResolver.swift | 6 +- Sources/Services/AWSMWAA/MWAAClient.swift | 55 +- .../Services/AWSMWAA/MWAAClientProtocol.swift | 3 - Sources/Services/AWSMWAA/Paginators.swift | 23 +- Sources/Services/AWSMWAA/models/Models.swift | 6 +- .../AWSMachineLearning/Paginators.swift | 92 +- Sources/Services/AWSMacie/Paginators.swift | 34 +- Sources/Services/AWSMacie2/Paginators.swift | 368 +- .../AWSManagedBlockchain/Paginators.swift | 125 +- .../AWSMarketplaceCatalog/Paginators.swift | 34 +- .../Services/AWSMediaConnect/Paginators.swift | 92 +- .../AWSMediaConvert/EndpointResolver.swift | 6 +- .../AWSMediaConvert/MediaConvertClient.swift | 140 +- .../Services/AWSMediaConvert/Paginators.swift | 115 +- .../AWSMediaConvert/models/Models.swift | 160 +- .../Services/AWSMediaLive/Paginators.swift | 230 +- .../Services/AWSMediaPackage/Paginators.swift | 69 +- .../AWSMediaPackageVod/Paginators.swift | 69 +- .../Services/AWSMediaStore/Paginators.swift | 17 +- .../AWSMediaStoreData/Paginators.swift | 17 +- .../Services/AWSMediaTailor/Paginators.swift | 23 +- Sources/Services/AWSMemoryDB/Paginators.swift | 276 +- .../Services/AWSMigrationHub/Paginators.swift | 115 +- .../AWSMigrationHubConfig/Paginators.swift | 17 +- .../Paginators.swift | 115 +- .../AWSMigrationHubStrategy/Paginators.swift | 115 +- Sources/Services/AWSMobile/Paginators.swift | 34 +- Sources/Services/AWSMq/Paginators.swift | 23 +- Sources/Services/AWSNeptune/Paginators.swift | 368 +- .../AWSNetworkFirewall/Paginators.swift | 92 +- .../AWSNetworkFirewall/models/Models.swift | 65 +- .../AWSNetworkManager/EndpointResolver.swift | 2 +- .../AWSNetworkManager/Paginators.swift | 483 +- Sources/Services/AWSOAM/Paginators.swift | 69 +- .../Services/AWSOpenSearch/Paginators.swift | 204 +- Sources/Services/AWSOpsWorks/Paginators.swift | 23 +- .../Services/AWSOpsWorksCM/Paginators.swift | 92 +- .../AWSOrganizations/EndpointResolver.swift | 2 +- .../AWSOrganizations/Paginators.swift | 290 +- .../AWSOutposts/EndpointResolver.swift | 6 +- .../Services/AWSOutposts/OutpostsClient.swift | 130 +- Sources/Services/AWSOutposts/Paginators.swift | 102 +- .../Services/AWSOutposts/models/Models.swift | 3 + Sources/Services/AWSPI/Paginators.swift | 68 +- Sources/Services/AWSPanorama/Paginators.swift | 153 +- .../Services/AWSPersonalize/Paginators.swift | 368 +- .../AWSPinpointEmail/Paginators.swift | 102 +- .../AWSPinpointSMSVoiceV2/Paginators.swift | 253 +- Sources/Services/AWSPolly/Paginators.swift | 17 +- Sources/Services/AWSPricing/Paginators.swift | 51 +- .../AWSPrivateNetworks/Paginators.swift | 115 +- Sources/Services/AWSProton/Paginators.swift | 46 +- Sources/Services/AWSQLDB/Paginators.swift | 68 +- .../Services/AWSQuickSight/Paginators.swift | 368 +- .../Services/AWSRAM/EndpointResolver.swift | 6 +- Sources/Services/AWSRAM/Paginators.swift | 187 +- Sources/Services/AWSRAM/RAMClient.swift | 125 +- Sources/Services/AWSRDS/Paginators.swift | 776 +- Sources/Services/AWSRDS/RDSClient.swift | 6 +- .../Services/AWSRDS/RDSClientProtocol.swift | 6 +- Sources/Services/AWSRDS/models/Models.swift | 292 +- Sources/Services/AWSRbin/Paginators.swift | 23 +- Sources/Services/AWSRedshift/Paginators.swift | 736 +- .../Services/AWSRedshiftData/Paginators.swift | 138 +- .../Services/AWSRekognition/Paginators.swift | 314 +- .../AWSResiliencehub/Paginators.swift | 238 +- .../AWSResourceExplorer2/Paginators.swift | 46 +- .../AWSResourceGroups/EndpointResolver.swift | 6 +- .../AWSResourceGroups/Paginators.swift | 74 +- .../ResourceGroupsClient.swift | 172 +- .../ResourceGroupsClientProtocol.swift | 27 +- .../AWSResourceGroups/models/Models.swift | 438 +- .../Paginators.swift | 92 +- .../Services/AWSRoboMaker/Paginators.swift | 187 +- .../AWSRoute53/EndpointResolver.swift | 2 +- Sources/Services/AWSRoute53/Paginators.swift | 138 +- .../AWSRoute53Domains/Paginators.swift | 92 +- .../Paginators.swift | 17 +- .../EndpointResolver.swift | 2 +- .../Paginators.swift | 115 +- .../Paginators.swift | 230 +- .../AWSRoute53Resolver/Paginators.swift | 255 +- Sources/Services/AWSS3/EndpointResolver.swift | 2 +- Sources/Services/AWSS3/Paginators.swift | 40 +- .../AWSS3Control/EndpointResolver.swift | 2 +- .../Services/AWSS3Control/Paginators.swift | 108 +- .../Services/AWSS3Outposts/Paginators.swift | 46 +- Sources/Services/AWSSES/Paginators.swift | 40 +- Sources/Services/AWSSESv2/Paginators.swift | 221 +- Sources/Services/AWSSFN/Paginators.swift | 115 +- Sources/Services/AWSSMS/Paginators.swift | 92 +- Sources/Services/AWSSNS/Paginators.swift | 184 +- Sources/Services/AWSSQS/Paginators.swift | 46 +- Sources/Services/AWSSSM/Paginators.swift | 1063 +- Sources/Services/AWSSSM/SSMClient.swift | 2 +- .../Services/AWSSSM/SSMClientProtocol.swift | 2 +- Sources/Services/AWSSSM/models/Models.swift | 25 +- .../Services/AWSSSMContacts/Paginators.swift | 138 +- .../Services/AWSSSMIncidents/Paginators.swift | 138 +- Sources/Services/AWSSSO/Paginators.swift | 46 +- Sources/Services/AWSSSOAdmin/Paginators.swift | 253 +- .../Services/AWSSTS/EndpointResolver.swift | 2 +- Sources/Services/AWSSWF/Paginators.swift | 161 +- .../Services/AWSSageMaker/Paginators.swift | 1575 ++- .../AWSSageMakerA2IRuntime/Paginators.swift | 23 +- .../AWSSavingsplans/EndpointResolver.swift | 2 +- Sources/Services/AWSSchemas/Paginators.swift | 115 +- .../AWSSecretsManager/Paginators.swift | 34 +- .../SecretsManagerClient.swift | 6 +- .../SecretsManagerClientProtocol.swift | 8 +- .../AWSSecretsManager/models/Models.swift | 11 +- .../Services/AWSSecurityHub/Paginators.swift | 276 +- .../Services/AWSSecurityLake/Paginators.swift | 92 +- .../Paginators.swift | 51 +- .../AWSServiceCatalog/Paginators.swift | 323 +- .../Paginators.swift | 115 +- .../AWSServiceDiscovery/Paginators.swift | 85 +- .../AWSServiceQuotas/Paginators.swift | 138 +- .../Services/AWSShield/EndpointResolver.swift | 2 +- Sources/Services/AWSShield/Paginators.swift | 80 +- Sources/Services/AWSSigner/Paginators.swift | 51 +- Sources/Services/AWSSnowball/Paginators.swift | 138 +- Sources/Services/AWSSsmSap/Paginators.swift | 69 +- .../AWSStorageGateway/Paginators.swift | 253 +- .../AWSSupport/EndpointResolver.swift | 2 +- Sources/Services/AWSSupport/Paginators.swift | 46 +- .../Services/AWSSupportApp/Paginators.swift | 34 +- .../Services/AWSSynthetics/Paginators.swift | 119 +- .../AWSTimestreamQuery/Paginators.swift | 57 +- .../AWSTimestreamWrite/Paginators.swift | 34 +- .../Services/AWSTranscribe/Paginators.swift | 136 +- Sources/Services/AWSTransfer/Paginators.swift | 253 +- .../Services/AWSTranslate/Paginators.swift | 68 +- Sources/Services/AWSVoiceID/Paginators.swift | 69 +- .../Services/AWSWAF/EndpointResolver.swift | 2 +- .../AWSWellArchitected/Paginators.swift | 204 +- Sources/Services/AWSWorkDocs/Paginators.swift | 63 +- Sources/Services/AWSWorkLink/Paginators.swift | 85 +- Sources/Services/AWSWorkMail/Paginators.swift | 227 +- .../Services/AWSWorkSpaces/Paginators.swift | 69 +- .../AWSWorkSpacesWeb/EndpointResolver.swift | 2 +- .../AWSWorkSpacesWeb/Paginators.swift | 136 +- .../AWSWorkSpacesWeb/models/Models.swift | 84 +- Sources/Services/AWSXRay/Paginators.swift | 264 +- .../AWSACMPCATests/EndpointResolverTest.swift | 558 +- .../EndpointResolverTest.swift | 8 +- .../EndpointResolverTest.swift | 340 +- .../EndpointResolverTest.swift | 8 +- .../AWSChimeTests/EndpointResolverTest.swift | 4 +- .../EndpointResolverTest.swift | 467 + .../EndpointResolverTest.swift | 8 +- .../EndpointResolverTest.swift | 8 +- .../EndpointResolverTest.swift | 18 +- .../AWSHealthTests/EndpointResolverTest.swift | 4 +- .../AWSIAMTests/EndpointResolverTest.swift | 20 +- .../EndpointResolverTest.swift | 581 ++ .../AWSKendraTests/EndpointResolverTest.swift | 966 +- .../EndpointResolverTest.swift | 524 +- .../EndpointResolverTest.swift | 8 +- .../EndpointResolverTest.swift | 12 +- .../AWSRAMTests/EndpointResolverTest.swift | 1898 +--- .../EndpointResolverTest.swift | 4 +- .../EndpointResolverTest.swift | 20 +- .../ListResourceRecordSetsRequestTest.swift | 9 +- .../EndpointResolverTest.swift | 260 +- .../AWSS3Tests/EndpointResolverTest.swift | 494 +- .../AWSS3Tests/PutObjectRequestTest.swift | 18 +- .../AWSSTSTests/EndpointResolverTest.swift | 72 +- .../EndpointResolverTest.swift | 4 +- .../AWSShieldTests/EndpointResolverTest.swift | 4 +- .../EndpointResolverTest.swift | 20 +- .../AWSWAFTests/EndpointResolverTest.swift | 4 +- 390 files changed, 42530 insertions(+), 26729 deletions(-) create mode 100644 Sources/Services/AWSCleanRooms/CleanRoomsClient.swift create mode 100644 Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift create mode 100644 Sources/Services/AWSCleanRooms/EndpointResolver.swift create mode 100644 Sources/Services/AWSCleanRooms/Paginators.swift create mode 100644 Sources/Services/AWSCleanRooms/models/Models.swift create mode 100644 Sources/Services/AWSKendraRanking/EndpointResolver.swift create mode 100644 Sources/Services/AWSKendraRanking/KendraRankingClient.swift create mode 100644 Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift create mode 100644 Sources/Services/AWSKendraRanking/Paginators.swift create mode 100644 Sources/Services/AWSKendraRanking/models/Models.swift create mode 100644 Tests/Services/AWSCleanRoomsTests/EndpointResolverTest.swift create mode 100644 Tests/Services/AWSKendraRankingTests/EndpointResolverTest.swift diff --git a/Package.swift b/Package.swift index e720c54e380..97c59f0dab9 100644 --- a/Package.swift +++ b/Package.swift @@ -67,6 +67,7 @@ let package = Package( .library(name: "AWSChimeSDKMeetings", targets: ["AWSChimeSDKMeetings"]), .library(name: "AWSChimeSDKMessaging", targets: ["AWSChimeSDKMessaging"]), .library(name: "AWSChimeSDKVoice", targets: ["AWSChimeSDKVoice"]), + .library(name: "AWSCleanRooms", targets: ["AWSCleanRooms"]), .library(name: "AWSCloud9", targets: ["AWSCloud9"]), .library(name: "AWSCloudControl", targets: ["AWSCloudControl"]), .library(name: "AWSCloudDirectory", targets: ["AWSCloudDirectory"]), @@ -194,6 +195,7 @@ let package = Package( .library(name: "AWSKafka", targets: ["AWSKafka"]), .library(name: "AWSKafkaConnect", targets: ["AWSKafkaConnect"]), .library(name: "AWSKendra", targets: ["AWSKendra"]), + .library(name: "AWSKendraRanking", targets: ["AWSKendraRanking"]), .library(name: "AWSKeyspaces", targets: ["AWSKeyspaces"]), .library(name: "AWSKinesis", targets: ["AWSKinesis"]), .library(name: "AWSKinesisAnalytics", targets: ["AWSKinesisAnalytics"]), @@ -414,6 +416,7 @@ let package = Package( .target(name: "AWSChimeSDKMeetings", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSChimeSDKMeetings"), .target(name: "AWSChimeSDKMessaging", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSChimeSDKMessaging"), .target(name: "AWSChimeSDKVoice", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSChimeSDKVoice"), + .target(name: "AWSCleanRooms", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSCleanRooms"), .target(name: "AWSCloud9", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSCloud9"), .target(name: "AWSCloudControl", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSCloudControl"), .target(name: "AWSCloudDirectory", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSCloudDirectory"), @@ -541,6 +544,7 @@ let package = Package( .target(name: "AWSKafka", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKafka"), .target(name: "AWSKafkaConnect", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKafkaConnect"), .target(name: "AWSKendra", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKendra"), + .target(name: "AWSKendraRanking", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKendraRanking"), .target(name: "AWSKeyspaces", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKeyspaces"), .target(name: "AWSKinesis", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKinesis"), .target(name: "AWSKinesisAnalytics", dependencies: [clientRuntime, "AWSClientRuntime"], path: "./Sources/Services/AWSKinesisAnalytics"), @@ -752,6 +756,7 @@ let package = Package( // .testTarget(name: "AWSChimeSDKMeetingsTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSChimeSDKMeetings", smithyTestUtil], path: "./Tests/Services/AWSChimeSDKMeetingsTests"), // .testTarget(name: "AWSChimeSDKMessagingTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSChimeSDKMessaging", smithyTestUtil], path: "./Tests/Services/AWSChimeSDKMessagingTests"), // .testTarget(name: "AWSChimeSDKVoiceTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSChimeSDKVoice", smithyTestUtil], path: "./Tests/Services/AWSChimeSDKVoiceTests"), + // .testTarget(name: "AWSCleanRoomsTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSCleanRooms", smithyTestUtil], path: "./Tests/Services/AWSCleanRoomsTests"), // .testTarget(name: "AWSCloud9Tests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSCloud9", smithyTestUtil], path: "./Tests/Services/AWSCloud9Tests"), // .testTarget(name: "AWSCloudControlTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSCloudControl", smithyTestUtil], path: "./Tests/Services/AWSCloudControlTests"), // .testTarget(name: "AWSCloudDirectoryTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSCloudDirectory", smithyTestUtil], path: "./Tests/Services/AWSCloudDirectoryTests"), @@ -879,6 +884,7 @@ let package = Package( // .testTarget(name: "AWSKafkaTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKafka", smithyTestUtil], path: "./Tests/Services/AWSKafkaTests"), // .testTarget(name: "AWSKafkaConnectTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKafkaConnect", smithyTestUtil], path: "./Tests/Services/AWSKafkaConnectTests"), // .testTarget(name: "AWSKendraTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKendra", smithyTestUtil], path: "./Tests/Services/AWSKendraTests"), + // .testTarget(name: "AWSKendraRankingTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKendraRanking", smithyTestUtil], path: "./Tests/Services/AWSKendraRankingTests"), // .testTarget(name: "AWSKeyspacesTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKeyspaces", smithyTestUtil], path: "./Tests/Services/AWSKeyspacesTests"), // .testTarget(name: "AWSKinesisTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKinesis", smithyTestUtil], path: "./Tests/Services/AWSKinesisTests"), // .testTarget(name: "AWSKinesisAnalyticsTests", dependencies: [awsCommonRuntimeKit, clientRuntime, "AWSClientRuntime", "AWSKinesisAnalytics", smithyTestUtil], path: "./Tests/Services/AWSKinesisAnalyticsTests"), diff --git a/Sources/Services/AWSACM/Paginators.swift b/Sources/Services/AWSACM/Paginators.swift index 4e470ad8114..dc25b2348b3 100644 --- a/Sources/Services/AWSACM/Paginators.swift +++ b/Sources/Services/AWSACM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` extension ACMClient { + /// Paginate over `[ListCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` public func listCertificatesPaginated(input: ListCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificatesInput.nextToken, outputKey: \ListCertificatesOutputResponse.nextToken, paginationFunction: self.listCertificates(input:)) } @@ -29,10 +28,10 @@ extension ListCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` -/// to access the nested member `[ACMClientTypes.CertificateSummary]` -/// - Returns: `[ACMClientTypes.CertificateSummary]` extension PaginatorSequence where Input == ListCertificatesInput, Output == ListCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` + /// to access the nested member `[ACMClientTypes.CertificateSummary]` + /// - Returns: `[ACMClientTypes.CertificateSummary]` public func certificateSummaryList() async throws -> [ACMClientTypes.CertificateSummary] { return try await self.asyncCompactMap { item in item.certificateSummaryList } } diff --git a/Sources/Services/AWSACMPCA/ACMPCAClient.swift b/Sources/Services/AWSACMPCA/ACMPCAClient.swift index 2c5718dd891..f4e8fbd3661 100644 --- a/Sources/Services/AWSACMPCA/ACMPCAClient.swift +++ b/Sources/Services/AWSACMPCA/ACMPCAClient.swift @@ -205,7 +205,7 @@ public struct ACMPCAClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFactory } extension ACMPCAClient: ACMPCAClientProtocol { - /// Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, an optional configuration for Online Certificate Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The OCSP configuration can optionally specify a custom URL for the OCSP responder. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption). Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). + /// Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, an optional configuration for Online Certificate Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The OCSP configuration can optionally specify a custom URL for the OCSP responder. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCreateCa.html#crl-encryption). public func createCertificateAuthority(input: CreateCertificateAuthorityInput) async throws -> CreateCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -224,7 +224,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -241,7 +244,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) and [RevokeCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) actions use the private key. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your Audit Reports](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuditReport.html#audit-report-encryption). You can generate a maximum of one report every 30 minutes. + /// Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) and [RevokeCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RevokeCertificate.html) actions use the private key. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your Audit Reports](https://docs.aws.amazon.com/privateca/latest/userguide/PcaAuditReport.html#audit-report-encryption). You can generate a maximum of one report every 30 minutes. public func createCertificateAuthorityAuditReport(input: CreateCertificateAuthorityAuditReportInput) async throws -> CreateCertificateAuthorityAuditReportOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -260,7 +263,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createCertificateAuthorityAuditReport") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -277,13 +283,13 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Grants one or more permissions on a private CA to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. You can list current permissions with the [ListPermissions](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html) action and revoke them with the [DeletePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html) action. About Permissions + /// Grants one or more permissions on a private CA to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. You can list current permissions with the [ListPermissions](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListPermissions.html) action and revoke them with the [DeletePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePermission.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). public func createPermission(input: CreatePermissionInput) async throws -> CreatePermissionOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -302,7 +308,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createPermission") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -319,7 +328,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call [DeleteCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html), the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The [DescribeCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html) action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the [RestoreCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RestoreCertificateAuthority.html) action. + /// Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into Amazon Web Services Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call [DeleteCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeleteCertificateAuthority.html), the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The [DescribeCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DescribeCertificateAuthority.html) action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the [RestoreCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RestoreCertificateAuthority.html) action. public func deleteCertificateAuthority(input: DeleteCertificateAuthorityInput) async throws -> DeleteCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -338,7 +347,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -355,13 +367,13 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Revokes permissions on a private CA granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html) action and listed with the [ListPermissions](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html) action. About Permissions + /// Revokes permissions on a private CA granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreatePermission.html) action and listed with the [ListPermissions](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListPermissions.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). public func deletePermission(input: DeletePermissionInput) async throws -> DeletePermissionOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -380,7 +392,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "deletePermission") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -397,15 +412,15 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through Amazon Web Services Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with [GetPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html) and updated with [PutPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html). About Policies + /// Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through Amazon Web Services Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with [GetPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetPolicy.html) and updated with [PutPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_PutPolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). public func deletePolicy(input: DeletePolicyInput) async throws -> DeletePolicyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -424,7 +439,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "deletePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -443,9 +461,9 @@ extension ACMPCAClient: ACMPCAClientProtocol { /// Lists information about your private certificate authority (CA) or one that has been shared with you. You specify the private CA on input by its ARN (Amazon Resource Name). The output contains the status of your CA. This can be any of the following: /// - /// * CREATING - ACM Private CA is creating your private certificate authority. + /// * CREATING - Amazon Web Services Private CA is creating your private certificate authority. /// - /// * PENDING_CERTIFICATE - The certificate is pending. You must use your ACM Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into PCA. + /// * PENDING_CERTIFICATE - The certificate is pending. You must use your Amazon Web Services Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into Amazon Web Services Private CA. /// /// * ACTIVE - Your private CA is active. /// @@ -474,7 +492,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -491,7 +512,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Lists information about a specific audit report created by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) action or the [RevokeCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) action. + /// Lists information about a specific audit report created by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action or the [RevokeCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RevokeCertificate.html) action. public func describeCertificateAuthorityAuditReport(input: DescribeCertificateAuthorityAuditReportInput) async throws -> DescribeCertificateAuthorityAuditReportOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -510,7 +531,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeCertificateAuthorityAuditReport") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -527,7 +551,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action to create a report that contains information about all of the certificates issued and revoked by your private CA. + /// Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action to create a report that contains information about all of the certificates issued and revoked by your private CA. public func getCertificate(input: GetCertificateInput) async throws -> GetCertificateOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -546,7 +570,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -582,7 +609,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCertificateAuthorityCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -599,7 +629,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into ACM Private CA by calling the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action. The CSR is returned as a base64 PEM-encoded string. + /// Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. Sign the CSR with your Amazon Web Services Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into Amazon Web Services Private CA by calling the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action. The CSR is returned as a base64 PEM-encoded string. public func getCertificateAuthorityCsr(input: GetCertificateAuthorityCsrInput) async throws -> GetCertificateAuthorityCsrOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -618,7 +648,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCertificateAuthorityCsr") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -635,15 +668,15 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with [PutPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html). About Policies + /// Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with [PutPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_PutPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). public func getPolicy(input: GetPolicyInput) async throws -> GetPolicyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -662,7 +695,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "getPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -679,22 +715,22 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Imports a signed private CA certificate into ACM Private CA. This action is used when you are using a chain of trust whose root is located outside ACM Private CA. Before you can call this action, the following preparations must in place: + /// Imports a signed private CA certificate into Amazon Web Services Private CA. This action is used when you are using a chain of trust whose root is located outside Amazon Web Services Private CA. Before you can call this action, the following preparations must in place: /// - /// * In ACM Private CA, call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action to create the private CA that you plan to back with the imported certificate. + /// * In Amazon Web Services Private CA, call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action to create the private CA that you plan to back with the imported certificate. /// - /// * Call the [GetCertificateAuthorityCsr](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCsr.html) action to generate a certificate signing request (CSR). + /// * Call the [GetCertificateAuthorityCsr](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificateAuthorityCsr.html) action to generate a certificate signing request (CSR). /// /// * Sign the CSR using a root or intermediate CA hosted by either an on-premises PKI hierarchy or by a commercial CA. /// /// * Create a certificate chain and copy the signed certificate and the certificate chain to your working directory. /// /// - /// ACM Private CA supports three scenarios for installing a CA certificate: + /// Amazon Web Services Private CA supports three scenarios for installing a CA certificate: /// - /// * Installing a certificate for a root CA hosted by ACM Private CA. + /// * Installing a certificate for a root CA hosted by Amazon Web Services Private CA. /// - /// * Installing a subordinate CA certificate whose parent authority is hosted by ACM Private CA. + /// * Installing a subordinate CA certificate whose parent authority is hosted by Amazon Web Services Private CA. /// /// * Installing a subordinate CA certificate whose parent authority is externally hosted. /// @@ -716,7 +752,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { /// * The maximum allowed size of a certificate chain is 2 MB. /// /// - /// Enforcement of Critical Constraints ACM Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. + /// Enforcement of Critical Constraints Amazon Web Services Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. /// /// * Basic constraints (must be marked critical) /// @@ -743,7 +779,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { /// * Inhibit anyPolicy /// /// - /// ACM Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. + /// Amazon Web Services Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. /// /// * Name constraints /// @@ -774,7 +810,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "importCertificateAuthorityCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -791,7 +830,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the [GetCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html) action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using ACM Private CA. + /// Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the [GetCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificate.html) action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using Amazon Web Services Private CA. public func issueCertificate(input: IssueCertificateInput) async throws -> IssueCertificateOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -810,7 +849,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "issueCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -827,7 +869,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Lists the private certificate authorities that you created by using the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. + /// Lists the private certificate authorities that you created by using the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. public func listCertificateAuthorities(input: ListCertificateAuthoritiesInput) async throws -> ListCertificateAuthoritiesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -846,7 +888,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "listCertificateAuthorities") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -863,13 +908,13 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// List all permissions on a private CA, if any, granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html) action and revoked with the [DeletePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html) action. About Permissions + /// List all permissions on a private CA, if any, granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreatePermission.html) action and revoked with the [DeletePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePermission.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). public func listPermissions(input: ListPermissionsInput) async throws -> ListPermissionsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -888,7 +933,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPermissions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -905,7 +953,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the [TagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html) action to add one or more tags to your CA. Call the [UntagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html) action to remove tags. + /// Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the [TagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_TagCertificateAuthority.html) action to add one or more tags to your CA. Call the [UntagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UntagCertificateAuthority.html) action to remove tags. public func listTags(input: ListTagsInput) async throws -> ListTagsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -924,7 +972,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTags") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -941,15 +992,15 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through Amazon Web Services Resource Access Manager (RAM). For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). The policy can be displayed with [GetPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html). About Policies + /// Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through Amazon Web Services Resource Access Manager (RAM). For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). The policy can be displayed with [GetPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). public func putPolicy(input: PutPolicyInput) async throws -> PutPolicyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -968,7 +1019,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "putPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -985,7 +1039,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html) action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the [DescribeCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html) or [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. + /// Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeleteCertificateAuthority.html) action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the [DescribeCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DescribeCertificateAuthority.html) or [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. public func restoreCertificateAuthority(input: RestoreCertificateAuthorityInput) async throws -> RestoreCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1004,7 +1058,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "restoreCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1021,7 +1078,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see [Supported CloudWatch Metrics](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCloudWatch.html). Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). ACM Private CA also writes revocation information to the audit report. For more information, see [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html). You cannot revoke a root CA self-signed certificate. + /// Revokes a certificate that was issued inside Amazon Web Services Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. Amazon Web Services Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, Amazon Web Services Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see [Supported CloudWatch Metrics](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCloudWatch.html). Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA also writes revocation information to the audit report. For more information, see [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html). You cannot revoke a root CA self-signed certificate. public func revokeCertificate(input: RevokeCertificateInput) async throws -> RevokeCertificateOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1040,7 +1097,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "revokeCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1057,7 +1117,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the [UntagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html) action. Call the [ListTags](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. + /// Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the [UntagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UntagCertificateAuthority.html) action. Call the [ListTags](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. To attach tags to a private CA during the creation procedure, a CA administrator must first associate an inline IAM policy with the CreateCertificateAuthority action and explicitly allow tagging. For more information, see [Attaching tags to a CA at the time of creation](https://docs.aws.amazon.com/privateca/latest/userguide/auth-InlinePolicies.html#policy-tag-ca). public func tagCertificateAuthority(input: TagCertificateAuthorityInput) async throws -> TagCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1076,7 +1136,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1093,7 +1156,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the [TagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html). Call the [ListTags](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. + /// Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the [TagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_TagCertificateAuthority.html). Call the [ListTags](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. public func untagCertificateAuthority(input: UntagCertificateAuthorityInput) async throws -> UntagCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1112,7 +1175,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1129,7 +1195,7 @@ extension ACMPCAClient: ACMPCAClientProtocol { return result } - /// Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). + /// Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). public func updateCertificateAuthority(input: UpdateCertificateAuthorityInput) async throws -> UpdateCertificateAuthorityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1148,7 +1214,10 @@ extension ACMPCAClient: ACMPCAClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateCertificateAuthority") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift b/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift index f5c46f209cc..58fe77f1332 100644 --- a/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift +++ b/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift @@ -3,45 +3,45 @@ import AWSClientRuntime import ClientRuntime -/// This is the Private Certificate Authority (PCA) API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization. The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see [Amazon Web Services SDKs](https://aws.amazon.com/tools/#SDKs). Each ACM Private CA API operation has a quota that determines the number of times the operation can be called per second. ACM Private CA throttles API requests at different rates depending on the operation. Throttling means that ACM Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, ACM Private CA returns a [ThrottlingException](https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html) error. ACM Private CA does not guarantee a minimum request rate for APIs. To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the [Service Quotas](https://console.aws.amazon.com/servicequotas/) console. +/// This is the Amazon Web Services Private Certificate Authority API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization. The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see [Amazon Web Services SDKs](https://aws.amazon.com/tools/#SDKs). Each Amazon Web Services Private CA API operation has a quota that determines the number of times the operation can be called per second. Amazon Web Services Private CA throttles API requests at different rates depending on the operation. Throttling means that Amazon Web Services Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, Amazon Web Services Private CA returns a [ThrottlingException](https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html) error. Amazon Web Services Private CA does not guarantee a minimum request rate for APIs. To see an up-to-date list of your Amazon Web Services Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the [Service Quotas](https://console.aws.amazon.com/servicequotas/) console. public protocol ACMPCAClientProtocol { - /// Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, an optional configuration for Online Certificate Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The OCSP configuration can optionally specify a custom URL for the OCSP responder. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption). Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). + /// Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, an optional configuration for Online Certificate Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The OCSP configuration can optionally specify a custom URL for the OCSP responder. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCreateCa.html#crl-encryption). func createCertificateAuthority(input: CreateCertificateAuthorityInput) async throws -> CreateCertificateAuthorityOutputResponse - /// Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) and [RevokeCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) actions use the private key. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your Audit Reports](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuditReport.html#audit-report-encryption). You can generate a maximum of one report every 30 minutes. + /// Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) and [RevokeCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RevokeCertificate.html) actions use the private key. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your Audit Reports](https://docs.aws.amazon.com/privateca/latest/userguide/PcaAuditReport.html#audit-report-encryption). You can generate a maximum of one report every 30 minutes. func createCertificateAuthorityAuditReport(input: CreateCertificateAuthorityAuditReportInput) async throws -> CreateCertificateAuthorityAuditReportOutputResponse - /// Grants one or more permissions on a private CA to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. You can list current permissions with the [ListPermissions](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html) action and revoke them with the [DeletePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html) action. About Permissions + /// Grants one or more permissions on a private CA to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. You can list current permissions with the [ListPermissions](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListPermissions.html) action and revoke them with the [DeletePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePermission.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). func createPermission(input: CreatePermissionInput) async throws -> CreatePermissionOutputResponse - /// Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call [DeleteCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html), the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The [DescribeCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html) action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the [RestoreCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RestoreCertificateAuthority.html) action. + /// Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into Amazon Web Services Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call [DeleteCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeleteCertificateAuthority.html), the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The [DescribeCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DescribeCertificateAuthority.html) action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the [RestoreCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RestoreCertificateAuthority.html) action. func deleteCertificateAuthority(input: DeleteCertificateAuthorityInput) async throws -> DeleteCertificateAuthorityOutputResponse - /// Revokes permissions on a private CA granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html) action and listed with the [ListPermissions](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html) action. About Permissions + /// Revokes permissions on a private CA granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreatePermission.html) action and listed with the [ListPermissions](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListPermissions.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). func deletePermission(input: DeletePermissionInput) async throws -> DeletePermissionOutputResponse - /// Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through Amazon Web Services Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with [GetPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html) and updated with [PutPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html). About Policies + /// Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through Amazon Web Services Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with [GetPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetPolicy.html) and updated with [PutPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_PutPolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). func deletePolicy(input: DeletePolicyInput) async throws -> DeletePolicyOutputResponse /// Lists information about your private certificate authority (CA) or one that has been shared with you. You specify the private CA on input by its ARN (Amazon Resource Name). The output contains the status of your CA. This can be any of the following: /// - /// * CREATING - ACM Private CA is creating your private certificate authority. + /// * CREATING - Amazon Web Services Private CA is creating your private certificate authority. /// - /// * PENDING_CERTIFICATE - The certificate is pending. You must use your ACM Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into PCA. + /// * PENDING_CERTIFICATE - The certificate is pending. You must use your Amazon Web Services Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into Amazon Web Services Private CA. /// /// * ACTIVE - Your private CA is active. /// @@ -53,40 +53,40 @@ public protocol ACMPCAClientProtocol { /// /// * DELETED - Your private CA is within the restoration period, after which it is permanently deleted. The length of time remaining in the CA's restoration period is also included in this action's output. func describeCertificateAuthority(input: DescribeCertificateAuthorityInput) async throws -> DescribeCertificateAuthorityOutputResponse - /// Lists information about a specific audit report created by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) action or the [RevokeCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) action. + /// Lists information about a specific audit report created by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action or the [RevokeCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RevokeCertificate.html) action. func describeCertificateAuthorityAuditReport(input: DescribeCertificateAuthorityAuditReportInput) async throws -> DescribeCertificateAuthorityAuditReportOutputResponse - /// Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the [IssueCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html) action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action to create a report that contains information about all of the certificates issued and revoked by your private CA. + /// Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action to create a report that contains information about all of the certificates issued and revoked by your private CA. func getCertificate(input: GetCertificateInput) async throws -> GetCertificateOutputResponse /// Retrieves the certificate and certificate chain for your private certificate authority (CA) or one that has been shared with you. Both the certificate and the chain are base64 PEM-encoded. The chain does not include the CA certificate. Each certificate in the chain signs the one before it. func getCertificateAuthorityCertificate(input: GetCertificateAuthorityCertificateInput) async throws -> GetCertificateAuthorityCertificateOutputResponse - /// Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into ACM Private CA by calling the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action. The CSR is returned as a base64 PEM-encoded string. + /// Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. Sign the CSR with your Amazon Web Services Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into Amazon Web Services Private CA by calling the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action. The CSR is returned as a base64 PEM-encoded string. func getCertificateAuthorityCsr(input: GetCertificateAuthorityCsrInput) async throws -> GetCertificateAuthorityCsrOutputResponse - /// Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with [PutPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html). About Policies + /// Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with [PutPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_PutPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). func getPolicy(input: GetPolicyInput) async throws -> GetPolicyOutputResponse - /// Imports a signed private CA certificate into ACM Private CA. This action is used when you are using a chain of trust whose root is located outside ACM Private CA. Before you can call this action, the following preparations must in place: + /// Imports a signed private CA certificate into Amazon Web Services Private CA. This action is used when you are using a chain of trust whose root is located outside Amazon Web Services Private CA. Before you can call this action, the following preparations must in place: /// - /// * In ACM Private CA, call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action to create the private CA that you plan to back with the imported certificate. + /// * In Amazon Web Services Private CA, call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action to create the private CA that you plan to back with the imported certificate. /// - /// * Call the [GetCertificateAuthorityCsr](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCsr.html) action to generate a certificate signing request (CSR). + /// * Call the [GetCertificateAuthorityCsr](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificateAuthorityCsr.html) action to generate a certificate signing request (CSR). /// /// * Sign the CSR using a root or intermediate CA hosted by either an on-premises PKI hierarchy or by a commercial CA. /// /// * Create a certificate chain and copy the signed certificate and the certificate chain to your working directory. /// /// - /// ACM Private CA supports three scenarios for installing a CA certificate: + /// Amazon Web Services Private CA supports three scenarios for installing a CA certificate: /// - /// * Installing a certificate for a root CA hosted by ACM Private CA. + /// * Installing a certificate for a root CA hosted by Amazon Web Services Private CA. /// - /// * Installing a subordinate CA certificate whose parent authority is hosted by ACM Private CA. + /// * Installing a subordinate CA certificate whose parent authority is hosted by Amazon Web Services Private CA. /// /// * Installing a subordinate CA certificate whose parent authority is externally hosted. /// @@ -108,7 +108,7 @@ public protocol ACMPCAClientProtocol { /// * The maximum allowed size of a certificate chain is 2 MB. /// /// - /// Enforcement of Critical Constraints ACM Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. + /// Enforcement of Critical Constraints Amazon Web Services Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. /// /// * Basic constraints (must be marked critical) /// @@ -135,7 +135,7 @@ public protocol ACMPCAClientProtocol { /// * Inhibit anyPolicy /// /// - /// ACM Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. + /// Amazon Web Services Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. /// /// * Name constraints /// @@ -149,39 +149,39 @@ public protocol ACMPCAClientProtocol { /// /// * Any other extension func importCertificateAuthorityCertificate(input: ImportCertificateAuthorityCertificateInput) async throws -> ImportCertificateAuthorityCertificateOutputResponse - /// Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the [GetCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html) action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using ACM Private CA. + /// Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the [GetCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificate.html) action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using Amazon Web Services Private CA. func issueCertificate(input: IssueCertificateInput) async throws -> IssueCertificateOutputResponse - /// Lists the private certificate authorities that you created by using the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. + /// Lists the private certificate authorities that you created by using the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. func listCertificateAuthorities(input: ListCertificateAuthoritiesInput) async throws -> ListCertificateAuthoritiesOutputResponse - /// List all permissions on a private CA, if any, granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html) action and revoked with the [DeletePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html) action. About Permissions + /// List all permissions on a private CA, if any, granted to the Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same Amazon Web Services account as the CA. Permissions can be granted with the [CreatePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreatePermission.html) action and revoked with the [DeletePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePermission.html) action. About Permissions /// /// * If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. /// /// * For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. /// - /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). func listPermissions(input: ListPermissionsInput) async throws -> ListPermissionsOutputResponse - /// Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the [TagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html) action to add one or more tags to your CA. Call the [UntagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html) action to remove tags. + /// Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the [TagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_TagCertificateAuthority.html) action to add one or more tags to your CA. Call the [UntagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UntagCertificateAuthority.html) action to remove tags. func listTags(input: ListTagsInput) async throws -> ListTagsOutputResponse - /// Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through Amazon Web Services Resource Access Manager (RAM). For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). The policy can be displayed with [GetPolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html). About Policies + /// Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through Amazon Web Services Resource Access Manager (RAM). For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). The policy can be displayed with [GetPolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetPolicy.html) and removed with [DeletePolicy](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePolicy.html). About Policies /// - /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with ACM Private CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html). + /// * A policy grants access on a private CA to an Amazon Web Services customer account, to Amazon Web Services Organizations, or to an Amazon Web Services Organizations unit. Policies are under the control of a CA administrator. For more information, see [Using a Resource Based Policy with Amazon Web Services Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/pca-rbp.html). /// /// * A policy permits a user of Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. /// - /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). + /// * For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the Amazon Web Services Private CA policy. For more information, see [Using a Service Linked Role with ACM](https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html). /// - /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html). + /// * Updates made in Amazon Web Services Resource Manager (RAM) are reflected in policies. For more information, see [Attach a Policy for Cross-Account Access](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html). func putPolicy(input: PutPolicyInput) async throws -> PutPolicyOutputResponse - /// Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html) action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the [DescribeCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html) or [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. + /// Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeleteCertificateAuthority.html) action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the [DescribeCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DescribeCertificateAuthority.html) or [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. func restoreCertificateAuthority(input: RestoreCertificateAuthorityInput) async throws -> RestoreCertificateAuthorityOutputResponse - /// Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see [Supported CloudWatch Metrics](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCloudWatch.html). Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). ACM Private CA also writes revocation information to the audit report. For more information, see [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html). You cannot revoke a root CA self-signed certificate. + /// Revokes a certificate that was issued inside Amazon Web Services Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. Amazon Web Services Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, Amazon Web Services Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see [Supported CloudWatch Metrics](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCloudWatch.html). Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). Amazon Web Services Private CA also writes revocation information to the audit report. For more information, see [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html). You cannot revoke a root CA self-signed certificate. func revokeCertificate(input: RevokeCertificateInput) async throws -> RevokeCertificateOutputResponse - /// Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the [UntagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html) action. Call the [ListTags](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. + /// Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your Amazon Web Services resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the [UntagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UntagCertificateAuthority.html) action. Call the [ListTags](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. To attach tags to a private CA during the creation procedure, a CA administrator must first associate an inline IAM policy with the CreateCertificateAuthority action and explicitly allow tagging. For more information, see [Attaching tags to a CA at the time of creation](https://docs.aws.amazon.com/privateca/latest/userguide/auth-InlinePolicies.html#policy-tag-ca). func tagCertificateAuthority(input: TagCertificateAuthorityInput) async throws -> TagCertificateAuthorityOutputResponse - /// Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the [TagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html). Call the [ListTags](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. + /// Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the [TagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_TagCertificateAuthority.html). Call the [ListTags](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListTags.html) action to see what tags are associated with your CA. func untagCertificateAuthority(input: UntagCertificateAuthorityInput) async throws -> UntagCertificateAuthorityOutputResponse - /// Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html#s3-policies). + /// Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both Amazon Web Services Private CA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see [Access policies for CRLs in Amazon S3](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-policies). func updateCertificateAuthority(input: UpdateCertificateAuthorityInput) async throws -> UpdateCertificateAuthorityOutputResponse } diff --git a/Sources/Services/AWSACMPCA/EndpointResolver.swift b/Sources/Services/AWSACMPCA/EndpointResolver.swift index ee6ae18371b..56ed0280127 100644 --- a/Sources/Services/AWSACMPCA/EndpointResolver.swift +++ b/Sources/Services/AWSACMPCA/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://acm-pca.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSACMPCA/Paginators.swift b/Sources/Services/AWSACMPCA/Paginators.swift index ddee327bead..d62b580d993 100644 --- a/Sources/Services/AWSACMPCA/Paginators.swift +++ b/Sources/Services/AWSACMPCA/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCertificateAuthoritiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificateAuthoritiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificateAuthoritiesOutputResponse` extension ACMPCAClient { + /// Paginate over `[ListCertificateAuthoritiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificateAuthoritiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificateAuthoritiesOutputResponse` public func listCertificateAuthoritiesPaginated(input: ListCertificateAuthoritiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificateAuthoritiesInput.nextToken, outputKey: \ListCertificateAuthoritiesOutputResponse.nextToken, paginationFunction: self.listCertificateAuthorities(input:)) } @@ -26,24 +25,23 @@ extension ListCertificateAuthoritiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificateAuthoritiesPaginated` -/// to access the nested member `[ACMPCAClientTypes.CertificateAuthority]` -/// - Returns: `[ACMPCAClientTypes.CertificateAuthority]` extension PaginatorSequence where Input == ListCertificateAuthoritiesInput, Output == ListCertificateAuthoritiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificateAuthoritiesPaginated` + /// to access the nested member `[ACMPCAClientTypes.CertificateAuthority]` + /// - Returns: `[ACMPCAClientTypes.CertificateAuthority]` public func certificateAuthorities() async throws -> [ACMPCAClientTypes.CertificateAuthority] { return try await self.asyncCompactMap { item in item.certificateAuthorities } } } - -/// Paginate over `[ListPermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` extension ACMPCAClient { + /// Paginate over `[ListPermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` public func listPermissionsPaginated(input: ListPermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionsInput.nextToken, outputKey: \ListPermissionsOutputResponse.nextToken, paginationFunction: self.listPermissions(input:)) } @@ -58,24 +56,23 @@ extension ListPermissionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPermissionsPaginated` -/// to access the nested member `[ACMPCAClientTypes.Permission]` -/// - Returns: `[ACMPCAClientTypes.Permission]` extension PaginatorSequence where Input == ListPermissionsInput, Output == ListPermissionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPermissionsPaginated` + /// to access the nested member `[ACMPCAClientTypes.Permission]` + /// - Returns: `[ACMPCAClientTypes.Permission]` public func permissions() async throws -> [ACMPCAClientTypes.Permission] { return try await self.asyncCompactMap { item in item.permissions } } } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension ACMPCAClient { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } @@ -90,10 +87,10 @@ extension ListTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` -/// to access the nested member `[ACMPCAClientTypes.Tag]` -/// - Returns: `[ACMPCAClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsInput, Output == ListTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` + /// to access the nested member `[ACMPCAClientTypes.Tag]` + /// - Returns: `[ACMPCAClientTypes.Tag]` public func tags() async throws -> [ACMPCAClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSACMPCA/models/Models.swift b/Sources/Services/AWSACMPCA/models/Models.swift index fc9c4ac3cd0..a8077ca087e 100644 --- a/Sources/Services/AWSACMPCA/models/Models.swift +++ b/Sources/Services/AWSACMPCA/models/Models.swift @@ -377,7 +377,7 @@ extension ACMPCAClientTypes.ApiPassthrough: Swift.Codable { } extension ACMPCAClientTypes { - /// Contains X.509 certificate information to be placed in an issued certificate. An APIPassthrough or APICSRPassthrough template variant must be selected, or else this parameter is ignored. If conflicting or duplicate certificate information is supplied from other sources, ACM Private CA applies [order of operation rules](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations) to determine what information is used. + /// Contains X.509 certificate information to be placed in an issued certificate. An APIPassthrough or APICSRPassthrough template variant must be selected, or else this parameter is ignored. If conflicting or duplicate certificate information is supplied from other sources, Amazon Web Services Private CA applies [order of operation rules](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html#template-order-of-operations) to determine what information is used. public struct ApiPassthrough: Swift.Equatable { /// Specifies X.509 extension information for a certificate. public var extensions: ACMPCAClientTypes.Extensions? @@ -567,7 +567,7 @@ extension ACMPCAClientTypes.CertificateAuthority: Swift.Codable { } extension ACMPCAClientTypes { - /// Contains information about your private certificate authority (CA). Your private CA can issue and revoke X.509 digital certificates. Digital certificates verify that the entity named in the certificate Subject field owns or controls the public key contained in the Subject Public Key Info field. Call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action to create your private CA. You must then call the [GetCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCertificate.html) action to retrieve a private CA certificate signing request (CSR). Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA certificate. Call the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import the signed certificate into Certificate Manager (ACM). + /// Contains information about your private certificate authority (CA). Your private CA can issue and revoke X.509 digital certificates. Digital certificates verify that the entity named in the certificate Subject field owns or controls the public key contained in the Subject Public Key Info field. Call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action to create your private CA. You must then call the [GetCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificateAuthorityCertificate.html) action to retrieve a private CA certificate signing request (CSR). Sign the CSR with your Amazon Web Services Private CA-hosted or on-premises root or subordinate CA certificate. Call the [ImportCertificateAuthorityCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html) action to import the signed certificate into Certificate Manager (ACM). public struct CertificateAuthority: Swift.Equatable { /// Amazon Resource Name (ARN) for your private certificate authority (CA). The format is 12345678-1234-1234-1234-123456789012 . public var arn: Swift.String? @@ -587,7 +587,7 @@ extension ACMPCAClientTypes { public var notBefore: ClientRuntime.Date? /// The Amazon Web Services account ID that owns the certificate authority. public var ownerAccount: Swift.String? - /// The period during which a deleted CA can be restored. For more information, see the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthorityRequest](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthorityRequest.html) action. + /// The period during which a deleted CA can be restored. For more information, see the PermanentDeletionTimeInDays parameter of the [DeleteCertificateAuthorityRequest](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeleteCertificateAuthorityRequest.html) action. public var restorableUntil: ClientRuntime.Date? /// Information about the Online Certificate Status Protocol (OCSP) configuration or certificate revocation list (CRL) created and maintained by your private CA. public var revocationConfiguration: ACMPCAClientTypes.RevocationConfiguration? @@ -676,7 +676,7 @@ extension ACMPCAClientTypes.CertificateAuthorityConfiguration: Swift.Codable { } extension ACMPCAClientTypes { - /// Contains configuration information for your private certificate authority (CA). This includes information about the class of public key algorithm and the key pair that your private CA creates when it issues a certificate. It also includes the signature algorithm that it uses when issuing certificates, and its X.500 distinguished name. You must specify this information when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. + /// Contains configuration information for your private certificate authority (CA). This includes information about the class of public key algorithm and the key pair that your private CA creates when it issues a certificate. It also includes the signature algorithm that it uses when issuing certificates, and its X.500 distinguished name. You must specify this information when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. public struct CertificateAuthorityConfiguration: Swift.Equatable { /// Specifies information to be added to the extension section of the certificate signing request (CSR). public var csrExtensions: ACMPCAClientTypes.CsrExtensions? @@ -1131,7 +1131,7 @@ public struct CreateCertificateAuthorityInput: Swift.Equatable { /// The type of the certificate authority. /// This member is required. public var certificateAuthorityType: ACMPCAClientTypes.CertificateAuthorityType? - /// Custom string that can be used to distinguish between calls to the CreateCertificateAuthority action. Idempotency tokens for CreateCertificateAuthority time out after five minutes. Therefore, if you call CreateCertificateAuthority multiple times with the same idempotency token within five minutes, ACM Private CA recognizes that you are requesting only certificate authority and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificate authorities. + /// Custom string that can be used to distinguish between calls to the CreateCertificateAuthority action. Idempotency tokens for CreateCertificateAuthority time out after five minutes. Therefore, if you call CreateCertificateAuthority multiple times with the same idempotency token within five minutes, Amazon Web Services Private CA recognizes that you are requesting only certificate authority and will issue only one. If you change the idempotency token for each call, Amazon Web Services Private CA recognizes that you are requesting multiple certificate authorities. public var idempotencyToken: Swift.String? /// Specifies a cryptographic key management compliance standard used for handling CA keys. Default: FIPS_140_2_LEVEL_3_OR_HIGHER Note: FIPS_140_2_LEVEL_3_OR_HIGHER is not supported in the following Regions: /// @@ -1142,7 +1142,18 @@ public struct CreateCertificateAuthorityInput: Swift.Equatable { /// /// When creating a CA in these Regions, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER as the argument for KeyStorageSecurityStandard. Failure to do this results in an InvalidArgsException with the message, "A certificate authority cannot be created in this region with the specified security standard." public var keyStorageSecurityStandard: ACMPCAClientTypes.KeyStorageSecurityStandard? - /// Contains information to enable Online Certificate Status Protocol (OCSP) support, to enable a certificate revocation list (CRL), to enable both, or to enable neither. The default is for both certificate validation mechanisms to be disabled. For more information, see the [OcspConfiguration](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html) and [CrlConfiguration](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html) types. + /// Contains information to enable Online Certificate Status Protocol (OCSP) support, to enable a certificate revocation list (CRL), to enable both, or to enable neither. The default is for both certificate validation mechanisms to be disabled. The following requirements apply to revocation configurations. + /// + /// * A configuration disabling CRLs or OCSP must contain only the Enabled=False parameter, and will fail if other parameters such as CustomCname or ExpirationInDays are included. + /// + /// * In a CRL configuration, the S3BucketName parameter must conform to [Amazon S3 bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + /// + /// * A configuration containing a custom Canonical Name (CNAME) parameter for CRLs or OCSP must conform to [RFC2396](https://www.ietf.org/rfc/rfc2396.txt) restrictions on the use of special characters in a CNAME. + /// + /// * In a CRL or OCSP configuration, the value of a CNAME parameter must not include a protocol prefix such as "http://" or "https://". + /// + /// + /// For more information, see the [OcspConfiguration](https://docs.aws.amazon.com/privateca/latest/APIReference/API_OcspConfiguration.html) and [CrlConfiguration](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CrlConfiguration.html) types. public var revocationConfiguration: ACMPCAClientTypes.RevocationConfiguration? /// Key-value pairs that will be attached to the new private CA. You can associate up to 50 tags with a private CA. For information using tags with IAM to manage permissions, see [Controlling Access Using IAM Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html). public var tags: [ACMPCAClientTypes.Tag]? @@ -1325,7 +1336,7 @@ public struct CreatePermissionInput: Swift.Equatable { /// The actions that the specified Amazon Web Services service principal can use. These include IssueCertificate, GetCertificate, and ListPermissions. /// This member is required. public var actions: [ACMPCAClientTypes.ActionType]? - /// The Amazon Resource Name (ARN) of the CA that grants the permissions. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + /// The Amazon Resource Name (ARN) of the CA that grants the permissions. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . /// This member is required. public var certificateAuthorityArn: Swift.String? /// The Amazon Web Services service or identity that receives the permission. At this time, the only valid principal is acm.amazonaws.com. @@ -1471,7 +1482,7 @@ extension ACMPCAClientTypes.CrlConfiguration: Swift.Codable { } extension ACMPCAClientTypes { - /// Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. Your S3 bucket policy must give write permission to ACM Private CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption). Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes. CRLs contain the following fields: + /// Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. Your S3 bucket policy must give write permission to Amazon Web Services Private CA. Amazon Web Services Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see [Encrypting Your CRLs](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCreateCa.html#crl-encryption). Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, Amazon Web Services Private CA makes further attempts every 15 minutes. CRLs contain the following fields: /// /// * Version: The current version number defined in RFC 5280 is V2. The integer value is 0x1. /// @@ -1513,18 +1524,18 @@ extension ACMPCAClientTypes { /// * Signature Value: Signature computed over the CRL. /// /// - /// Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL. openssl crl -inform DER -text -in crl_path -noout For more information, see [Planning a certificate revocation list (CRL)](https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html) in the Private Certificate Authority (PCA) User Guide + /// Certificate revocation lists created by Amazon Web Services Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL. openssl crl -inform DER -text -in crl_path -noout For more information, see [Planning a certificate revocation list (CRL)](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html) in the Amazon Web Services Private Certificate Authority User Guide public struct CrlConfiguration: Swift.Equatable { - /// Name inserted into the certificate CRL Distribution Points extension that enables the use of an alias for the CRL distribution point. Use this value if you don't want the name of your S3 bucket to be public. + /// Name inserted into the certificate CRL Distribution Points extension that enables the use of an alias for the CRL distribution point. Use this value if you don't want the name of your S3 bucket to be public. The content of a Canonical Name (CNAME) record must conform to [RFC2396](https://www.ietf.org/rfc/rfc2396.txt) restrictions on the use of special characters in URIs. Additionally, the value of the CNAME must not include a protocol prefix such as "http://" or "https://". public var customCname: Swift.String? - /// Boolean value that specifies whether certificate revocation lists (CRLs) are enabled. You can use this value to enable certificate revocation for a new CA when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action or for an existing CA when you call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) action. + /// Boolean value that specifies whether certificate revocation lists (CRLs) are enabled. You can use this value to enable certificate revocation for a new CA when you call the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action or for an existing CA when you call the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) action. /// This member is required. public var enabled: Swift.Bool? /// Validity period of the CRL in days. public var expirationInDays: Swift.Int? - /// Name of the S3 bucket that contains the CRL. If you do not provide a value for the CustomCname argument, the name of your S3 bucket is placed into the CRL Distribution Points extension of the issued certificate. You can change the name of your bucket by calling the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) operation. You must specify a [bucket policy](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies) that allows ACM Private CA to write the CRL to your bucket. + /// Name of the S3 bucket that contains the CRL. If you do not provide a value for the CustomCname argument, the name of your S3 bucket is placed into the CRL Distribution Points extension of the issued certificate. You can change the name of your bucket by calling the [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) operation. You must specify a [bucket policy](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCreateCa.html#s3-policies) that allows Amazon Web Services Private CA to write the CRL to your bucket. The S3BucketName parameter must conform to the [S3 bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). public var s3BucketName: Swift.String? - /// Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access. If no value is specified, the default is PUBLIC_READ. Note: This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value. For more information, see [Blocking public access to the S3 bucket](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa). + /// Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access. If no value is specified, the default is PUBLIC_READ. Note: This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value. For more information, see [Blocking public access to the S3 bucket](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCreateCa.html#s3-bpa). public var s3ObjectAcl: ACMPCAClientTypes.S3ObjectAcl? public init ( @@ -1681,7 +1692,7 @@ extension ACMPCAClientTypes.CustomExtension: Swift.Codable { } extension ACMPCAClientTypes { - /// Specifies the X.509 extension information for a certificate. Extensions present in CustomExtensions follow the ApiPassthrough[template rules](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations). + /// Specifies the X.509 extension information for a certificate. Extensions present in CustomExtensions follow the ApiPassthrough[template rules](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html#template-order-of-operations). public struct CustomExtension: Swift.Equatable { /// Specifies the critical flag of the X.509 extension. public var critical: Swift.Bool? @@ -1730,7 +1741,7 @@ extension DeleteCertificateAuthorityInput: ClientRuntime.URLPathProvider { } public struct DeleteCertificateAuthorityInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . /// This member is required. public var certificateAuthorityArn: Swift.String? /// The number of days to make a CA restorable after it has been deleted. This can be anywhere from 7 to 30 days, with 30 being the default. @@ -1832,7 +1843,7 @@ extension DeletePermissionInput: ClientRuntime.URLPathProvider { } public struct DeletePermissionInput: Swift.Equatable { - /// The Amazon Resource Number (ARN) of the private CA that issued the permissions. You can find the CA's ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + /// The Amazon Resource Number (ARN) of the private CA that issued the permissions. You can find the CA's ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . /// This member is required. public var certificateAuthorityArn: Swift.String? /// The Amazon Web Services service or identity that will have its CA permissions revoked. At this time, the only valid service principal is acm.amazonaws.com @@ -1935,7 +1946,7 @@ extension DeletePolicyInput: ClientRuntime.URLPathProvider { } public struct DeletePolicyInput: Swift.Equatable { - /// The Amazon Resource Number (ARN) of the private CA that will have its policy deleted. You can find the CA's ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. The ARN value must have the form arn:aws:acm-pca:region:account:certificate-authority/01234567-89ab-cdef-0123-0123456789ab. + /// The Amazon Resource Number (ARN) of the private CA that will have its policy deleted. You can find the CA's ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. The ARN value must have the form arn:aws:acm-pca:region:account:certificate-authority/01234567-89ab-cdef-0123-0123456789ab. /// This member is required. public var resourceArn: Swift.String? @@ -2029,7 +2040,7 @@ extension DescribeCertificateAuthorityAuditReportInput: ClientRuntime.URLPathPro } public struct DescribeCertificateAuthorityAuditReportInput: Swift.Equatable { - /// The report ID returned by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. + /// The report ID returned by calling the [CreateCertificateAuthorityAuditReport](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html) action. /// This member is required. public var auditReportId: Swift.String? /// The Amazon Resource Name (ARN) of the private CA. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . @@ -2183,7 +2194,7 @@ extension DescribeCertificateAuthorityInput: ClientRuntime.URLPathProvider { } public struct DescribeCertificateAuthorityInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . /// This member is required. public var certificateAuthorityArn: Swift.String? @@ -2249,7 +2260,7 @@ extension DescribeCertificateAuthorityOutputResponse: ClientRuntime.HttpResponse } public struct DescribeCertificateAuthorityOutputResponse: Swift.Equatable { - /// A [CertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CertificateAuthority.html) structure that contains information about your private CA. + /// A [CertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CertificateAuthority.html) structure that contains information about your private CA. public var certificateAuthority: ACMPCAClientTypes.CertificateAuthority? public init ( @@ -2828,7 +2839,7 @@ extension GetCertificateAuthorityCsrInput: ClientRuntime.URLPathProvider { } public struct GetCertificateAuthorityCsrInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? @@ -2970,7 +2981,7 @@ public struct GetCertificateInput: Swift.Equatable { /// The ARN of the issued certificate. The ARN contains the certificate serial number and must be in the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/286535153982981100925020015808220737245 /// This member is required. public var certificateArn: Swift.String? - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . /// This member is required. public var certificateAuthorityArn: Swift.String? @@ -3249,10 +3260,10 @@ public struct ImportCertificateAuthorityCertificateInput: Swift.Equatable { /// The PEM-encoded certificate for a private CA. This may be a self-signed certificate in the case of a root CA, or it may be signed by another CA that you control. /// This member is required. public var certificate: ClientRuntime.Data? - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? - /// A PEM-encoded file that contains all of your certificates, other than the certificate you're importing, chaining up to your root CA. Your ACM Private CA-hosted or on-premises root certificate is the last in the chain, and each certificate in the chain signs the one preceding. This parameter must be supplied when you import a subordinate CA. When you import a root CA, there is no chain. + /// A PEM-encoded file that contains all of your certificates, other than the certificate you're importing, chaining up to your root CA. Your Amazon Web Services Private CA-hosted or on-premises root certificate is the last in the chain, and each certificate in the chain signs the one preceding. This parameter must be supplied when you import a subordinate CA. When you import a root CA, there is no chain. public var certificateChain: ClientRuntime.Data? public init ( @@ -3460,7 +3471,7 @@ extension InvalidNextTokenException { } } -/// The token specified in the NextToken argument is not valid. Use the token returned from your previous call to [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html). +/// The token specified in the NextToken argument is not valid. Use the token returned from your previous call to [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html). public struct InvalidNextTokenException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -3751,25 +3762,25 @@ extension IssueCertificateInput: ClientRuntime.URLPathProvider { } public struct IssueCertificateInput: Swift.Equatable { - /// Specifies X.509 certificate information to be included in the issued certificate. An APIPassthrough or APICSRPassthrough template variant must be selected, or else this parameter is ignored. For more information about using these templates, see [Understanding Certificate Templates](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html). If conflicting or duplicate certificate information is supplied during certificate issuance, ACM Private CA applies [order of operation rules](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations) to determine what information is used. + /// Specifies X.509 certificate information to be included in the issued certificate. An APIPassthrough or APICSRPassthrough template variant must be selected, or else this parameter is ignored. For more information about using these templates, see [Understanding Certificate Templates](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html). If conflicting or duplicate certificate information is supplied during certificate issuance, Amazon Web Services Private CA applies [order of operation rules](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html#template-order-of-operations) to determine what information is used. public var apiPassthrough: ACMPCAClientTypes.ApiPassthrough? - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? /// The certificate signing request (CSR) for the certificate you want to issue. As an example, you can use the following OpenSSL command to create the CSR and a 2048 bit RSA private key. openssl req -new -newkey rsa:2048 -days 365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr If you have a configuration file, you can then use the following OpenSSL command. The usr_cert block in the configuration file contains your X509 version 3 extensions. openssl req -new -config openssl_rsa.cnf -extensions usr_cert -newkey rsa:2048 -days 365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr Note: A CSR must provide either a subject name or a subject alternative name or the request will be rejected. /// This member is required. public var csr: ClientRuntime.Data? - /// Alphanumeric string that can be used to distinguish between calls to the IssueCertificate action. Idempotency tokens for IssueCertificate time out after one minute. Therefore, if you call IssueCertificate multiple times with the same idempotency token within one minute, ACM Private CA recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificates. + /// Alphanumeric string that can be used to distinguish between calls to the IssueCertificate action. Idempotency tokens for IssueCertificate time out after one minute. Therefore, if you call IssueCertificate multiple times with the same idempotency token within one minute, Amazon Web Services Private CA recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, Amazon Web Services Private CA recognizes that you are requesting multiple certificates. public var idempotencyToken: Swift.String? /// The name of the algorithm that will be used to sign the certificate to be issued. This parameter should not be confused with the SigningAlgorithm parameter used to sign a CSR in the CreateCertificateAuthority action. The specified signing algorithm family (RSA or ECDSA) much match the algorithm family of the CA's secret key. /// This member is required. public var signingAlgorithm: ACMPCAClientTypes.SigningAlgorithm? - /// Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, ACM Private CA defaults to the EndEntityCertificate/V1 template. For CA certificates, you should choose the shortest path length that meets your needs. The path length is indicated by the PathLenN portion of the ARN, where N is the [CA depth](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaTerms.html#terms-cadepth). Note: The CA depth configured on a subordinate CA certificate must not exceed the limit set by its parents in the CA hierarchy. For a list of TemplateArn values supported by ACM Private CA, see [Understanding Certificate Templates](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html). + /// Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, Amazon Web Services Private CA defaults to the EndEntityCertificate/V1 template. For CA certificates, you should choose the shortest path length that meets your needs. The path length is indicated by the PathLenN portion of the ARN, where N is the [CA depth](https://docs.aws.amazon.com/privateca/latest/userguide/PcaTerms.html#terms-cadepth). Note: The CA depth configured on a subordinate CA certificate must not exceed the limit set by its parents in the CA hierarchy. For a list of TemplateArn values supported by Amazon Web Services Private CA, see [Understanding Certificate Templates](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html). public var templateArn: Swift.String? /// Information describing the end of the validity period of the certificate. This parameter sets the “Not After” date for the certificate. Certificate validity is the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the certificate expires, or as a span of time after issuance, stated in days, months, or years. For more information, see [Validity](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.5) in RFC 5280. This value is unaffected when ValidityNotBefore is also specified. For example, if Validity is set to 20 days in the future, the certificate will expire 20 days from issuance time regardless of the ValidityNotBefore value. The end of the validity period configured on a certificate must not exceed the limit set on its parents in the CA hierarchy. /// This member is required. public var validity: ACMPCAClientTypes.Validity? - /// Information describing the start of the validity period of the certificate. This parameter sets the “Not Before" date for the certificate. By default, when issuing a certificate, ACM Private CA sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The ValidityNotBefore parameter can be used to customize the “Not Before” value. Unlike the Validity parameter, the ValidityNotBefore parameter is optional. The ValidityNotBefore value is expressed as an explicit date and time, using the Validity type value ABSOLUTE. For more information, see [Validity](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_Validity.html) in this API reference and [Validity](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.5) in RFC 5280. + /// Information describing the start of the validity period of the certificate. This parameter sets the “Not Before" date for the certificate. By default, when issuing a certificate, Amazon Web Services Private CA sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The ValidityNotBefore parameter can be used to customize the “Not Before” value. Unlike the Validity parameter, the ValidityNotBefore parameter is optional. The ValidityNotBefore value is expressed as an explicit date and time, using the Validity type value ABSOLUTE. For more information, see [Validity](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_Validity.html) in this API reference and [Validity](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.5) in RFC 5280. public var validityNotBefore: ACMPCAClientTypes.Validity? public init ( @@ -4113,7 +4124,7 @@ extension LimitExceededException { } } -/// An ACM Private CA quota has been exceeded. See the exception message returned to determine the quota that was exceeded. +/// An Amazon Web Services Private CA quota has been exceeded. See the exception message returned to determine the quota that was exceeded. public struct LimitExceededException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -4329,7 +4340,7 @@ extension ListPermissionsInput: ClientRuntime.URLPathProvider { } public struct ListPermissionsInput: Swift.Equatable { - /// The Amazon Resource Number (ARN) of the private CA to inspect. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 You can get a private CA's ARN by running the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. + /// The Amazon Resource Number (ARN) of the private CA to inspect. You can find the ARN by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 You can get a private CA's ARN by running the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. /// This member is required. public var certificateAuthorityArn: Swift.String? /// When paginating results, use this parameter to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. @@ -4491,7 +4502,7 @@ extension ListTagsInput: ClientRuntime.URLPathProvider { } public struct ListTagsInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? /// Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. @@ -4808,7 +4819,7 @@ extension ACMPCAClientTypes { /// Flag enabling use of the Online Certificate Status Protocol (OCSP) for validating certificate revocation status. /// This member is required. public var enabled: Swift.Bool? - /// By default, ACM Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain. Note: The value of the CNAME must not include a protocol prefix such as "http://" or "https://". For more information, see [Customizing Online Certificate Status Protocol (OCSP) ](https://docs.aws.amazon.com/acm-pca/latest/userguide/ocsp-customize.html) in the Private Certificate Authority (PCA) User Guide. + /// By default, Amazon Web Services Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain. The content of a Canonical Name (CNAME) record must conform to [RFC2396](https://www.ietf.org/rfc/rfc2396.txt) restrictions on the use of special characters in URIs. Additionally, the value of the CNAME must not include a protocol prefix such as "http://" or "https://". For more information, see [Customizing Online Certificate Status Protocol (OCSP) ](https://docs.aws.amazon.com/privateca/latest/userguide/ocsp-customize.html) in the Amazon Web Services Private Certificate Authority User Guide. public var ocspCustomCname: Swift.String? public init ( @@ -4932,7 +4943,7 @@ extension ACMPCAClientTypes.Permission: Swift.Codable { } extension ACMPCAClientTypes { - /// Permissions designate which private CA actions can be performed by an Amazon Web Services service or entity. In order for ACM to automatically renew private certificates, you must give the ACM service principal all available permissions (IssueCertificate, GetCertificate, and ListPermissions). Permissions can be assigned with the [CreatePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html) action, removed with the [DeletePermission](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html) action, and listed with the [ListPermissions](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html) action. + /// Permissions designate which private CA actions can be performed by an Amazon Web Services service or entity. In order for ACM to automatically renew private certificates, you must give the ACM service principal all available permissions (IssueCertificate, GetCertificate, and ListPermissions). Permissions can be assigned with the [CreatePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreatePermission.html) action, removed with the [DeletePermission](https://docs.aws.amazon.com/privateca/latest/APIReference/API_DeletePermission.html) action, and listed with the [ListPermissions](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListPermissions.html) action. public struct Permission: Swift.Equatable { /// The private CA actions that can be performed by the designated Amazon Web Services service. public var actions: [ACMPCAClientTypes.ActionType]? @@ -5062,7 +5073,7 @@ extension ACMPCAClientTypes { /// Specifies the object identifier (OID) of the certificate policy under which the certificate was issued. For more information, see NIST's definition of [Object Identifier (OID)](https://csrc.nist.gov/glossary/term/Object_Identifier). /// This member is required. public var certPolicyId: Swift.String? - /// Modifies the given CertPolicyId with a qualifier. ACM Private CA supports the certification practice statement (CPS) qualifier. + /// Modifies the given CertPolicyId with a qualifier. Amazon Web Services Private CA supports the certification practice statement (CPS) qualifier. public var policyQualifiers: [ACMPCAClientTypes.PolicyQualifierInfo]? public init ( @@ -5132,12 +5143,12 @@ extension ACMPCAClientTypes.PolicyQualifierInfo: Swift.Codable { } extension ACMPCAClientTypes { - /// Modifies the CertPolicyId of a PolicyInformation object with a qualifier. ACM Private CA supports the certification practice statement (CPS) qualifier. + /// Modifies the CertPolicyId of a PolicyInformation object with a qualifier. Amazon Web Services Private CA supports the certification practice statement (CPS) qualifier. public struct PolicyQualifierInfo: Swift.Equatable { /// Identifies the qualifier modifying a CertPolicyId. /// This member is required. public var policyQualifierId: ACMPCAClientTypes.PolicyQualifierId? - /// Defines the qualifier type. ACM Private CA supports the use of a URI for a CPS qualifier in this field. + /// Defines the qualifier type. Amazon Web Services Private CA supports the use of a URI for a CPS qualifier in this field. /// This member is required. public var qualifier: ACMPCAClientTypes.Qualifier? @@ -5180,7 +5191,7 @@ public struct PutPolicyInput: Swift.Equatable { /// The path and file name of a JSON-formatted IAM policy to attach to the specified private CA resource. If this policy does not contain all required statements or if it includes any statement that is not allowed, the PutPolicy action returns an InvalidPolicyException. For information about IAM policy and statement structure, see [Overview of JSON Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json). /// This member is required. public var policy: Swift.String? - /// The Amazon Resource Number (ARN) of the private CA to associate with the policy. The ARN of the CA can be found by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html) action. + /// The Amazon Resource Number (ARN) of the private CA to associate with the policy. The ARN of the CA can be found by calling the [ListCertificateAuthorities](https://docs.aws.amazon.com/privateca/latest/APIReference/API_ListCertificateAuthorities.html) action. /// This member is required. public var resourceArn: Swift.String? @@ -5278,7 +5289,7 @@ extension ACMPCAClientTypes.Qualifier: Swift.Codable { } extension ACMPCAClientTypes { - /// Defines a PolicyInformation qualifier. ACM Private CA supports the [certification practice statement (CPS) qualifier](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.4) defined in RFC 5280. + /// Defines a PolicyInformation qualifier. Amazon Web Services Private CA supports the [certification practice statement (CPS) qualifier](https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.4) defined in RFC 5280. public struct Qualifier: Swift.Equatable { /// Contains a pointer to a certification practice statement (CPS) published by the CA. /// This member is required. @@ -5554,7 +5565,7 @@ extension RestoreCertificateAuthorityInput: ClientRuntime.URLPathProvider { } public struct RestoreCertificateAuthorityInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? @@ -5644,9 +5655,9 @@ extension ACMPCAClientTypes.RevocationConfiguration: Swift.Codable { } extension ACMPCAClientTypes { - /// Certificate revocation information used by the [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html) and [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see [RevokeCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html) and [Setting up a certificate revocation method](https://docs.aws.amazon.com/acm-pca/latest/userguide/revocation-setup.html) in the Private Certificate Authority (PCA) User Guide. + /// Certificate revocation information used by the [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html) and [UpdateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UpdateCertificateAuthority.html) actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see [RevokeCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_RevokeCertificate.html) and [Setting up a certificate revocation method](https://docs.aws.amazon.com/privateca/latest/userguide/revocation-setup.html) in the Amazon Web Services Private Certificate Authority User Guide. public struct RevocationConfiguration: Swift.Equatable { - /// Configuration of the certificate revocation list (CRL), if any, maintained by your private CA. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes. + /// Configuration of the certificate revocation list (CRL), if any, maintained by your private CA. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, Amazon Web Services Private CA makes further attempts every 15 minutes. public var crlConfiguration: ACMPCAClientTypes.CrlConfiguration? /// Configuration of Online Certificate Status Protocol (OCSP) support, if any, maintained by your private CA. When you revoke a certificate, OCSP responses may take up to 60 minutes to reflect the new status. public var ocspConfiguration: ACMPCAClientTypes.OcspConfiguration? @@ -5744,7 +5755,7 @@ public struct RevokeCertificateInput: Swift.Equatable { /// Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? - /// Serial number of the certificate to be revoked. This must be in hexadecimal format. You can retrieve the serial number by calling [GetCertificate](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html) with the Amazon Resource Name (ARN) of the certificate you want and the ARN of your private CA. The GetCertificate action retrieves the certificate in the PEM format. You can use the following OpenSSL command to list the certificate in text format and copy the hexadecimal serial number. openssl x509 -in file_path -text -noout You can also copy the serial number from the console or use the [DescribeCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html) action in the Certificate Manager API Reference. + /// Serial number of the certificate to be revoked. This must be in hexadecimal format. You can retrieve the serial number by calling [GetCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_GetCertificate.html) with the Amazon Resource Name (ARN) of the certificate you want and the ARN of your private CA. The GetCertificate action retrieves the certificate in the PEM format. You can use the following OpenSSL command to list the certificate in text format and copy the hexadecimal serial number. openssl x509 -in file_path -text -noout You can also copy the serial number from the console or use the [DescribeCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html) action in the Certificate Manager API Reference. /// This member is required. public var certificateSerial: Swift.String? /// Specifies why you revoked the certificate. @@ -5937,7 +5948,7 @@ extension ACMPCAClientTypes.Tag: Swift.Codable { } extension ACMPCAClientTypes { - /// Tags are labels that you can use to identify and organize your private CAs. Each tag consists of a key and an optional value. You can associate up to 50 tags with a private CA. To add one or more tags to a private CA, call the [TagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html) action. To remove a tag, call the [UntagCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html) action. + /// Tags are labels that you can use to identify and organize your private CAs. Each tag consists of a key and an optional value. You can associate up to 50 tags with a private CA. To add one or more tags to a private CA, call the [TagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_TagCertificateAuthority.html) action. To remove a tag, call the [UntagCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_UntagCertificateAuthority.html) action. public struct Tag: Swift.Equatable { /// Key (name) of the tag. /// This member is required. @@ -5984,7 +5995,7 @@ extension TagCertificateAuthorityInput: ClientRuntime.URLPathProvider { } public struct TagCertificateAuthorityInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? /// List of tags to be associated with the CA. @@ -6149,7 +6160,7 @@ extension UntagCertificateAuthorityInput: ClientRuntime.URLPathProvider { } public struct UntagCertificateAuthorityInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + /// The Amazon Resource Name (ARN) that was returned when you called [CreateCertificateAuthority](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CreateCertificateAuthority.html). This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? /// List of tags to be removed from the CA. @@ -6264,7 +6275,15 @@ public struct UpdateCertificateAuthorityInput: Swift.Equatable { /// Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 /// This member is required. public var certificateAuthorityArn: Swift.String? - /// Contains information to enable Online Certificate Status Protocol (OCSP) support, to enable a certificate revocation list (CRL), to enable both, or to enable neither. If this parameter is not supplied, existing capibilites remain unchanged. For more information, see the [OcspConfiguration](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html) and [CrlConfiguration](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html) types. + /// Contains information to enable Online Certificate Status Protocol (OCSP) support, to enable a certificate revocation list (CRL), to enable both, or to enable neither. If this parameter is not supplied, existing capibilites remain unchanged. For more information, see the [OcspConfiguration](https://docs.aws.amazon.com/privateca/latest/APIReference/API_OcspConfiguration.html) and [CrlConfiguration](https://docs.aws.amazon.com/privateca/latest/APIReference/API_CrlConfiguration.html) types. The following requirements apply to revocation configurations. + /// + /// * A configuration disabling CRLs or OCSP must contain only the Enabled=False parameter, and will fail if other parameters such as CustomCname or ExpirationInDays are included. + /// + /// * In a CRL configuration, the S3BucketName parameter must conform to [Amazon S3 bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + /// + /// * A configuration containing a custom Canonical Name (CNAME) parameter for CRLs or OCSP must conform to [RFC2396](https://www.ietf.org/rfc/rfc2396.txt) restrictions on the use of special characters in a CNAME. + /// + /// * In a CRL or OCSP configuration, the value of a CNAME parameter must not include a protocol prefix such as "http://" or "https://". public var revocationConfiguration: ACMPCAClientTypes.RevocationConfiguration? /// Status of your private CA. public var status: ACMPCAClientTypes.CertificateAuthorityStatus? @@ -6373,9 +6392,9 @@ extension ACMPCAClientTypes.Validity: Swift.Codable { } extension ACMPCAClientTypes { - /// Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see [Validity](https://tools.ietf.org/html/rfc5280#section-4.1.2.5) in RFC 5280. ACM Private CA API consumes the Validity data type differently in two distinct parameters of the IssueCertificate action. The required parameter IssueCertificate:Validity specifies the end of a certificate's validity period. The optional parameter IssueCertificate:ValidityNotBefore specifies a customized starting time for the validity period. + /// Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see [Validity](https://tools.ietf.org/html/rfc5280#section-4.1.2.5) in RFC 5280. Amazon Web Services Private CA API consumes the Validity data type differently in two distinct parameters of the IssueCertificate action. The required parameter IssueCertificate:Validity specifies the end of a certificate's validity period. The optional parameter IssueCertificate:ValidityNotBefore specifies a customized starting time for the validity period. public struct Validity: Swift.Equatable { - /// Determines how ACM Private CA interprets the Value parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output. END_DATE: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY. + /// Determines how Amazon Web Services Private CA interprets the Value parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output. END_DATE: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY. /// /// * Sample input value: 491231235959 (UTCTime format) /// diff --git a/Sources/Services/AWSAPIGateway/Paginators.swift b/Sources/Services/AWSAPIGateway/Paginators.swift index c1b4e47d84f..87e9180349e 100644 --- a/Sources/Services/AWSAPIGateway/Paginators.swift +++ b/Sources/Services/AWSAPIGateway/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetApiKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetApiKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetApiKeysOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetApiKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetApiKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetApiKeysOutputResponse` public func getApiKeysPaginated(input: GetApiKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetApiKeysInput.position, outputKey: \GetApiKeysOutputResponse.position, paginationFunction: self.getApiKeys(input:)) } @@ -28,24 +27,23 @@ extension GetApiKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getApiKeysPaginated` -/// to access the nested member `[APIGatewayClientTypes.ApiKey]` -/// - Returns: `[APIGatewayClientTypes.ApiKey]` extension PaginatorSequence where Input == GetApiKeysInput, Output == GetApiKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getApiKeysPaginated` + /// to access the nested member `[APIGatewayClientTypes.ApiKey]` + /// - Returns: `[APIGatewayClientTypes.ApiKey]` public func items() async throws -> [APIGatewayClientTypes.ApiKey] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetBasePathMappingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBasePathMappingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBasePathMappingsOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetBasePathMappingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBasePathMappingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBasePathMappingsOutputResponse` public func getBasePathMappingsPaginated(input: GetBasePathMappingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBasePathMappingsInput.position, outputKey: \GetBasePathMappingsOutputResponse.position, paginationFunction: self.getBasePathMappings(input:)) } @@ -60,24 +58,23 @@ extension GetBasePathMappingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getBasePathMappingsPaginated` -/// to access the nested member `[APIGatewayClientTypes.BasePathMapping]` -/// - Returns: `[APIGatewayClientTypes.BasePathMapping]` extension PaginatorSequence where Input == GetBasePathMappingsInput, Output == GetBasePathMappingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getBasePathMappingsPaginated` + /// to access the nested member `[APIGatewayClientTypes.BasePathMapping]` + /// - Returns: `[APIGatewayClientTypes.BasePathMapping]` public func items() async throws -> [APIGatewayClientTypes.BasePathMapping] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetClientCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetClientCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetClientCertificatesOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetClientCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetClientCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetClientCertificatesOutputResponse` public func getClientCertificatesPaginated(input: GetClientCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetClientCertificatesInput.position, outputKey: \GetClientCertificatesOutputResponse.position, paginationFunction: self.getClientCertificates(input:)) } @@ -91,24 +88,23 @@ extension GetClientCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getClientCertificatesPaginated` -/// to access the nested member `[APIGatewayClientTypes.ClientCertificate]` -/// - Returns: `[APIGatewayClientTypes.ClientCertificate]` extension PaginatorSequence where Input == GetClientCertificatesInput, Output == GetClientCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getClientCertificatesPaginated` + /// to access the nested member `[APIGatewayClientTypes.ClientCertificate]` + /// - Returns: `[APIGatewayClientTypes.ClientCertificate]` public func items() async throws -> [APIGatewayClientTypes.ClientCertificate] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDeploymentsOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDeploymentsOutputResponse` public func getDeploymentsPaginated(input: GetDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDeploymentsInput.position, outputKey: \GetDeploymentsOutputResponse.position, paginationFunction: self.getDeployments(input:)) } @@ -123,24 +119,23 @@ extension GetDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getDeploymentsPaginated` -/// to access the nested member `[APIGatewayClientTypes.Deployment]` -/// - Returns: `[APIGatewayClientTypes.Deployment]` extension PaginatorSequence where Input == GetDeploymentsInput, Output == GetDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getDeploymentsPaginated` + /// to access the nested member `[APIGatewayClientTypes.Deployment]` + /// - Returns: `[APIGatewayClientTypes.Deployment]` public func items() async throws -> [APIGatewayClientTypes.Deployment] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetDomainNamesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDomainNamesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDomainNamesOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetDomainNamesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDomainNamesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDomainNamesOutputResponse` public func getDomainNamesPaginated(input: GetDomainNamesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDomainNamesInput.position, outputKey: \GetDomainNamesOutputResponse.position, paginationFunction: self.getDomainNames(input:)) } @@ -154,24 +149,23 @@ extension GetDomainNamesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getDomainNamesPaginated` -/// to access the nested member `[APIGatewayClientTypes.DomainName]` -/// - Returns: `[APIGatewayClientTypes.DomainName]` extension PaginatorSequence where Input == GetDomainNamesInput, Output == GetDomainNamesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getDomainNamesPaginated` + /// to access the nested member `[APIGatewayClientTypes.DomainName]` + /// - Returns: `[APIGatewayClientTypes.DomainName]` public func items() async throws -> [APIGatewayClientTypes.DomainName] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetModelsOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetModelsOutputResponse` public func getModelsPaginated(input: GetModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetModelsInput.position, outputKey: \GetModelsOutputResponse.position, paginationFunction: self.getModels(input:)) } @@ -186,24 +180,23 @@ extension GetModelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getModelsPaginated` -/// to access the nested member `[APIGatewayClientTypes.Model]` -/// - Returns: `[APIGatewayClientTypes.Model]` extension PaginatorSequence where Input == GetModelsInput, Output == GetModelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getModelsPaginated` + /// to access the nested member `[APIGatewayClientTypes.Model]` + /// - Returns: `[APIGatewayClientTypes.Model]` public func items() async throws -> [APIGatewayClientTypes.Model] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcesOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcesOutputResponse` public func getResourcesPaginated(input: GetResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcesInput.position, outputKey: \GetResourcesOutputResponse.position, paginationFunction: self.getResources(input:)) } @@ -219,24 +212,23 @@ extension GetResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourcesPaginated` -/// to access the nested member `[APIGatewayClientTypes.Resource]` -/// - Returns: `[APIGatewayClientTypes.Resource]` extension PaginatorSequence where Input == GetResourcesInput, Output == GetResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourcesPaginated` + /// to access the nested member `[APIGatewayClientTypes.Resource]` + /// - Returns: `[APIGatewayClientTypes.Resource]` public func items() async throws -> [APIGatewayClientTypes.Resource] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetRestApisOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetRestApisInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetRestApisOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetRestApisOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetRestApisInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetRestApisOutputResponse` public func getRestApisPaginated(input: GetRestApisInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetRestApisInput.position, outputKey: \GetRestApisOutputResponse.position, paginationFunction: self.getRestApis(input:)) } @@ -250,24 +242,23 @@ extension GetRestApisInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getRestApisPaginated` -/// to access the nested member `[APIGatewayClientTypes.RestApi]` -/// - Returns: `[APIGatewayClientTypes.RestApi]` extension PaginatorSequence where Input == GetRestApisInput, Output == GetRestApisOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getRestApisPaginated` + /// to access the nested member `[APIGatewayClientTypes.RestApi]` + /// - Returns: `[APIGatewayClientTypes.RestApi]` public func items() async throws -> [APIGatewayClientTypes.RestApi] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetUsageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUsageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUsageOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetUsageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUsageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUsageOutputResponse` public func getUsagePaginated(input: GetUsageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUsageInput.position, outputKey: \GetUsageOutputResponse.position, paginationFunction: self.getUsage(input:)) } @@ -285,24 +276,23 @@ extension GetUsageInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getUsagePaginated` -/// to access the nested member `[(String, [[Swift.Int]])]` -/// - Returns: `[(String, [[Swift.Int]])]` extension PaginatorSequence where Input == GetUsageInput, Output == GetUsageOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getUsagePaginated` + /// to access the nested member `[(String, [[Swift.Int]])]` + /// - Returns: `[(String, [[Swift.Int]])]` public func items() async throws -> [(String, [[Swift.Int]])] { return try await self.asyncCompactMap { item in item.items?.map { ($0, $1) } } } } - -/// Paginate over `[GetUsagePlanKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUsagePlanKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUsagePlanKeysOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetUsagePlanKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUsagePlanKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUsagePlanKeysOutputResponse` public func getUsagePlanKeysPaginated(input: GetUsagePlanKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUsagePlanKeysInput.position, outputKey: \GetUsagePlanKeysOutputResponse.position, paginationFunction: self.getUsagePlanKeys(input:)) } @@ -318,24 +308,23 @@ extension GetUsagePlanKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getUsagePlanKeysPaginated` -/// to access the nested member `[APIGatewayClientTypes.UsagePlanKey]` -/// - Returns: `[APIGatewayClientTypes.UsagePlanKey]` extension PaginatorSequence where Input == GetUsagePlanKeysInput, Output == GetUsagePlanKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getUsagePlanKeysPaginated` + /// to access the nested member `[APIGatewayClientTypes.UsagePlanKey]` + /// - Returns: `[APIGatewayClientTypes.UsagePlanKey]` public func items() async throws -> [APIGatewayClientTypes.UsagePlanKey] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetUsagePlansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUsagePlansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUsagePlansOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetUsagePlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUsagePlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUsagePlansOutputResponse` public func getUsagePlansPaginated(input: GetUsagePlansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUsagePlansInput.position, outputKey: \GetUsagePlansOutputResponse.position, paginationFunction: self.getUsagePlans(input:)) } @@ -350,24 +339,23 @@ extension GetUsagePlansInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getUsagePlansPaginated` -/// to access the nested member `[APIGatewayClientTypes.UsagePlan]` -/// - Returns: `[APIGatewayClientTypes.UsagePlan]` extension PaginatorSequence where Input == GetUsagePlansInput, Output == GetUsagePlansOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getUsagePlansPaginated` + /// to access the nested member `[APIGatewayClientTypes.UsagePlan]` + /// - Returns: `[APIGatewayClientTypes.UsagePlan]` public func items() async throws -> [APIGatewayClientTypes.UsagePlan] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[GetVpcLinksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetVpcLinksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetVpcLinksOutputResponse` extension APIGatewayClient { + /// Paginate over `[GetVpcLinksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetVpcLinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetVpcLinksOutputResponse` public func getVpcLinksPaginated(input: GetVpcLinksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetVpcLinksInput.position, outputKey: \GetVpcLinksOutputResponse.position, paginationFunction: self.getVpcLinks(input:)) } @@ -381,10 +369,10 @@ extension GetVpcLinksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getVpcLinksPaginated` -/// to access the nested member `[APIGatewayClientTypes.VpcLink]` -/// - Returns: `[APIGatewayClientTypes.VpcLink]` extension PaginatorSequence where Input == GetVpcLinksInput, Output == GetVpcLinksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getVpcLinksPaginated` + /// to access the nested member `[APIGatewayClientTypes.VpcLink]` + /// - Returns: `[APIGatewayClientTypes.VpcLink]` public func items() async throws -> [APIGatewayClientTypes.VpcLink] { return try await self.asyncCompactMap { item in item.items } } diff --git a/Sources/Services/AWSAccessAnalyzer/Paginators.swift b/Sources/Services/AWSAccessAnalyzer/Paginators.swift index 348e2c70d17..6a129db3fe2 100644 --- a/Sources/Services/AWSAccessAnalyzer/Paginators.swift +++ b/Sources/Services/AWSAccessAnalyzer/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccessPreviewFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessPreviewFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessPreviewFindingsOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ListAccessPreviewFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessPreviewFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessPreviewFindingsOutputResponse` public func listAccessPreviewFindingsPaginated(input: ListAccessPreviewFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessPreviewFindingsInput.nextToken, outputKey: \ListAccessPreviewFindingsOutputResponse.nextToken, paginationFunction: self.listAccessPreviewFindings(input:)) } @@ -28,24 +27,23 @@ extension ListAccessPreviewFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessPreviewFindingsPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.AccessPreviewFinding]` -/// - Returns: `[AccessAnalyzerClientTypes.AccessPreviewFinding]` extension PaginatorSequence where Input == ListAccessPreviewFindingsInput, Output == ListAccessPreviewFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessPreviewFindingsPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.AccessPreviewFinding]` + /// - Returns: `[AccessAnalyzerClientTypes.AccessPreviewFinding]` public func findings() async throws -> [AccessAnalyzerClientTypes.AccessPreviewFinding] { return try await self.asyncCompactMap { item in item.findings } } } - -/// Paginate over `[ListAccessPreviewsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessPreviewsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessPreviewsOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ListAccessPreviewsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessPreviewsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessPreviewsOutputResponse` public func listAccessPreviewsPaginated(input: ListAccessPreviewsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessPreviewsInput.nextToken, outputKey: \ListAccessPreviewsOutputResponse.nextToken, paginationFunction: self.listAccessPreviews(input:)) } @@ -60,24 +58,23 @@ extension ListAccessPreviewsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessPreviewsPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.AccessPreviewSummary]` -/// - Returns: `[AccessAnalyzerClientTypes.AccessPreviewSummary]` extension PaginatorSequence where Input == ListAccessPreviewsInput, Output == ListAccessPreviewsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessPreviewsPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.AccessPreviewSummary]` + /// - Returns: `[AccessAnalyzerClientTypes.AccessPreviewSummary]` public func accessPreviews() async throws -> [AccessAnalyzerClientTypes.AccessPreviewSummary] { return try await self.asyncCompactMap { item in item.accessPreviews } } } - -/// Paginate over `[ListAnalyzedResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnalyzedResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnalyzedResourcesOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ListAnalyzedResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnalyzedResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnalyzedResourcesOutputResponse` public func listAnalyzedResourcesPaginated(input: ListAnalyzedResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnalyzedResourcesInput.nextToken, outputKey: \ListAnalyzedResourcesOutputResponse.nextToken, paginationFunction: self.listAnalyzedResources(input:)) } @@ -93,24 +90,23 @@ extension ListAnalyzedResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAnalyzedResourcesPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.AnalyzedResourceSummary]` -/// - Returns: `[AccessAnalyzerClientTypes.AnalyzedResourceSummary]` extension PaginatorSequence where Input == ListAnalyzedResourcesInput, Output == ListAnalyzedResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAnalyzedResourcesPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.AnalyzedResourceSummary]` + /// - Returns: `[AccessAnalyzerClientTypes.AnalyzedResourceSummary]` public func analyzedResources() async throws -> [AccessAnalyzerClientTypes.AnalyzedResourceSummary] { return try await self.asyncCompactMap { item in item.analyzedResources } } } - -/// Paginate over `[ListFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ListFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` public func listFindingsPaginated(input: ListFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsInput.nextToken, outputKey: \ListFindingsOutputResponse.nextToken, paginationFunction: self.listFindings(input:)) } @@ -127,24 +123,23 @@ extension ListFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.FindingSummary]` -/// - Returns: `[AccessAnalyzerClientTypes.FindingSummary]` extension PaginatorSequence where Input == ListFindingsInput, Output == ListFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.FindingSummary]` + /// - Returns: `[AccessAnalyzerClientTypes.FindingSummary]` public func findings() async throws -> [AccessAnalyzerClientTypes.FindingSummary] { return try await self.asyncCompactMap { item in item.findings } } } - -/// Paginate over `[ListPolicyGenerationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPolicyGenerationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPolicyGenerationsOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ListPolicyGenerationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPolicyGenerationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPolicyGenerationsOutputResponse` public func listPolicyGenerationsPaginated(input: ListPolicyGenerationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPolicyGenerationsInput.nextToken, outputKey: \ListPolicyGenerationsOutputResponse.nextToken, paginationFunction: self.listPolicyGenerations(input:)) } @@ -159,24 +154,23 @@ extension ListPolicyGenerationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPolicyGenerationsPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.PolicyGeneration]` -/// - Returns: `[AccessAnalyzerClientTypes.PolicyGeneration]` extension PaginatorSequence where Input == ListPolicyGenerationsInput, Output == ListPolicyGenerationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPolicyGenerationsPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.PolicyGeneration]` + /// - Returns: `[AccessAnalyzerClientTypes.PolicyGeneration]` public func policyGenerations() async throws -> [AccessAnalyzerClientTypes.PolicyGeneration] { return try await self.asyncCompactMap { item in item.policyGenerations } } } - -/// Paginate over `[ValidatePolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ValidatePolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ValidatePolicyOutputResponse` extension AccessAnalyzerClient { + /// Paginate over `[ValidatePolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ValidatePolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ValidatePolicyOutputResponse` public func validatePolicyPaginated(input: ValidatePolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ValidatePolicyInput.nextToken, outputKey: \ValidatePolicyOutputResponse.nextToken, paginationFunction: self.validatePolicy(input:)) } @@ -194,10 +188,10 @@ extension ValidatePolicyInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `validatePolicyPaginated` -/// to access the nested member `[AccessAnalyzerClientTypes.ValidatePolicyFinding]` -/// - Returns: `[AccessAnalyzerClientTypes.ValidatePolicyFinding]` extension PaginatorSequence where Input == ValidatePolicyInput, Output == ValidatePolicyOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `validatePolicyPaginated` + /// to access the nested member `[AccessAnalyzerClientTypes.ValidatePolicyFinding]` + /// - Returns: `[AccessAnalyzerClientTypes.ValidatePolicyFinding]` public func findings() async throws -> [AccessAnalyzerClientTypes.ValidatePolicyFinding] { return try await self.asyncCompactMap { item in item.findings } } diff --git a/Sources/Services/AWSAccount/EndpointResolver.swift b/Sources/Services/AWSAccount/EndpointResolver.swift index 884a3c30b98..03d59d8271e 100644 --- a/Sources/Services/AWSAccount/EndpointResolver.swift +++ b/Sources/Services/AWSAccount/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://account.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://account.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"account\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://account.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://account.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"account\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://account.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSAlexaForBusiness/Paginators.swift b/Sources/Services/AWSAlexaForBusiness/Paginators.swift index 75a139e9888..077dacad545 100644 --- a/Sources/Services/AWSAlexaForBusiness/Paginators.swift +++ b/Sources/Services/AWSAlexaForBusiness/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBusinessReportSchedulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBusinessReportSchedulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBusinessReportSchedulesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListBusinessReportSchedulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBusinessReportSchedulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBusinessReportSchedulesOutputResponse` public func listBusinessReportSchedulesPaginated(input: ListBusinessReportSchedulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBusinessReportSchedulesInput.nextToken, outputKey: \ListBusinessReportSchedulesOutputResponse.nextToken, paginationFunction: self.listBusinessReportSchedules(input:)) } @@ -24,16 +23,15 @@ extension ListBusinessReportSchedulesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListConferenceProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConferenceProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConferenceProvidersOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListConferenceProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConferenceProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConferenceProvidersOutputResponse` public func listConferenceProvidersPaginated(input: ListConferenceProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConferenceProvidersInput.nextToken, outputKey: \ListConferenceProvidersOutputResponse.nextToken, paginationFunction: self.listConferenceProviders(input:)) } @@ -46,16 +44,15 @@ extension ListConferenceProvidersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDeviceEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeviceEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeviceEventsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListDeviceEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeviceEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeviceEventsOutputResponse` public func listDeviceEventsPaginated(input: ListDeviceEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeviceEventsInput.nextToken, outputKey: \ListDeviceEventsOutputResponse.nextToken, paginationFunction: self.listDeviceEvents(input:)) } @@ -70,16 +67,15 @@ extension ListDeviceEventsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListGatewayGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGatewayGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGatewayGroupsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListGatewayGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGatewayGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGatewayGroupsOutputResponse` public func listGatewayGroupsPaginated(input: ListGatewayGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGatewayGroupsInput.nextToken, outputKey: \ListGatewayGroupsOutputResponse.nextToken, paginationFunction: self.listGatewayGroups(input:)) } @@ -92,16 +88,15 @@ extension ListGatewayGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` public func listGatewaysPaginated(input: ListGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGatewaysInput.nextToken, outputKey: \ListGatewaysOutputResponse.nextToken, paginationFunction: self.listGateways(input:)) } @@ -115,16 +110,15 @@ extension ListGatewaysInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSkillsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSkillsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSkillsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListSkillsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSkillsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSkillsOutputResponse` public func listSkillsPaginated(input: ListSkillsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSkillsInput.nextToken, outputKey: \ListSkillsOutputResponse.nextToken, paginationFunction: self.listSkills(input:)) } @@ -140,16 +134,15 @@ extension ListSkillsInput: ClientRuntime.PaginateToken { skillType: self.skillType )} } - -/// Paginate over `[ListSkillsStoreCategoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSkillsStoreCategoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSkillsStoreCategoriesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListSkillsStoreCategoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSkillsStoreCategoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSkillsStoreCategoriesOutputResponse` public func listSkillsStoreCategoriesPaginated(input: ListSkillsStoreCategoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSkillsStoreCategoriesInput.nextToken, outputKey: \ListSkillsStoreCategoriesOutputResponse.nextToken, paginationFunction: self.listSkillsStoreCategories(input:)) } @@ -162,16 +155,15 @@ extension ListSkillsStoreCategoriesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSkillsStoreSkillsByCategoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSkillsStoreSkillsByCategoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSkillsStoreSkillsByCategoryOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListSkillsStoreSkillsByCategoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSkillsStoreSkillsByCategoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSkillsStoreSkillsByCategoryOutputResponse` public func listSkillsStoreSkillsByCategoryPaginated(input: ListSkillsStoreSkillsByCategoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSkillsStoreSkillsByCategoryInput.nextToken, outputKey: \ListSkillsStoreSkillsByCategoryOutputResponse.nextToken, paginationFunction: self.listSkillsStoreSkillsByCategory(input:)) } @@ -185,16 +177,15 @@ extension ListSkillsStoreSkillsByCategoryInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSmartHomeAppliancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSmartHomeAppliancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSmartHomeAppliancesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListSmartHomeAppliancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSmartHomeAppliancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSmartHomeAppliancesOutputResponse` public func listSmartHomeAppliancesPaginated(input: ListSmartHomeAppliancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSmartHomeAppliancesInput.nextToken, outputKey: \ListSmartHomeAppliancesOutputResponse.nextToken, paginationFunction: self.listSmartHomeAppliances(input:)) } @@ -208,16 +199,15 @@ extension ListSmartHomeAppliancesInput: ClientRuntime.PaginateToken { roomArn: self.roomArn )} } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } @@ -231,16 +221,15 @@ extension ListTagsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[SearchAddressBooksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchAddressBooksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchAddressBooksOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchAddressBooksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchAddressBooksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchAddressBooksOutputResponse` public func searchAddressBooksPaginated(input: SearchAddressBooksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchAddressBooksInput.nextToken, outputKey: \SearchAddressBooksOutputResponse.nextToken, paginationFunction: self.searchAddressBooks(input:)) } @@ -255,16 +244,15 @@ extension SearchAddressBooksInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchContactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchContactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchContactsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchContactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchContactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchContactsOutputResponse` public func searchContactsPaginated(input: SearchContactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchContactsInput.nextToken, outputKey: \SearchContactsOutputResponse.nextToken, paginationFunction: self.searchContacts(input:)) } @@ -279,16 +267,15 @@ extension SearchContactsInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchDevicesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchDevicesOutputResponse` public func searchDevicesPaginated(input: SearchDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchDevicesInput.nextToken, outputKey: \SearchDevicesOutputResponse.nextToken, paginationFunction: self.searchDevices(input:)) } @@ -303,16 +290,15 @@ extension SearchDevicesInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchNetworkProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchNetworkProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchNetworkProfilesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchNetworkProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchNetworkProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchNetworkProfilesOutputResponse` public func searchNetworkProfilesPaginated(input: SearchNetworkProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchNetworkProfilesInput.nextToken, outputKey: \SearchNetworkProfilesOutputResponse.nextToken, paginationFunction: self.searchNetworkProfiles(input:)) } @@ -327,16 +313,15 @@ extension SearchNetworkProfilesInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchProfilesOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchProfilesOutputResponse` public func searchProfilesPaginated(input: SearchProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchProfilesInput.nextToken, outputKey: \SearchProfilesOutputResponse.nextToken, paginationFunction: self.searchProfiles(input:)) } @@ -351,16 +336,15 @@ extension SearchProfilesInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchRoomsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchRoomsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchRoomsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchRoomsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchRoomsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchRoomsOutputResponse` public func searchRoomsPaginated(input: SearchRoomsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchRoomsInput.nextToken, outputKey: \SearchRoomsOutputResponse.nextToken, paginationFunction: self.searchRooms(input:)) } @@ -375,16 +359,15 @@ extension SearchRoomsInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchSkillGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchSkillGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchSkillGroupsOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchSkillGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchSkillGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchSkillGroupsOutputResponse` public func searchSkillGroupsPaginated(input: SearchSkillGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchSkillGroupsInput.nextToken, outputKey: \SearchSkillGroupsOutputResponse.nextToken, paginationFunction: self.searchSkillGroups(input:)) } @@ -399,16 +382,15 @@ extension SearchSkillGroupsInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[SearchUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchUsersOutputResponse` extension AlexaForBusinessClient { + /// Paginate over `[SearchUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchUsersOutputResponse` public func searchUsersPaginated(input: SearchUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchUsersInput.nextToken, outputKey: \SearchUsersOutputResponse.nextToken, paginationFunction: self.searchUsers(input:)) } diff --git a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift index d3bdd54b56f..44f539fda48 100644 --- a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift +++ b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift @@ -224,7 +224,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "cloneBackend") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -259,7 +262,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBackend") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -294,7 +300,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBackendAPI") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -329,7 +338,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBackendAuth") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -364,7 +376,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBackendConfig") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -399,7 +414,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBackendStorage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -434,7 +452,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "createToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -466,7 +487,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBackend") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -498,7 +522,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBackendAPI") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -533,7 +560,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBackendAuth") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -568,7 +598,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBackendStorage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -603,7 +636,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -635,7 +671,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "generateBackendAPIModels") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -670,7 +709,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackend") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -705,7 +747,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackendAPI") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -721,7 +766,7 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { return result } - /// Generates a model schema for existing backend API resource. + /// Gets a model introspection schema for an existing backend API resource. public func getBackendAPIModels(input: GetBackendAPIModelsInput) async throws -> GetBackendAPIModelsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -740,7 +785,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackendAPIModels") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -775,7 +823,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackendAuth") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -810,7 +861,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackendJob") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -842,7 +896,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBackendStorage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -877,7 +934,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "getToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -909,7 +969,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "importBackendAuth") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -944,7 +1007,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "importBackendStorage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -979,7 +1045,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "listBackendJobs") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1014,7 +1083,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "listS3Buckets") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1049,7 +1121,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "removeAllBackends") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1084,7 +1159,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "removeBackendConfig") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1116,7 +1194,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBackendAPI") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1151,7 +1232,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBackendAuth") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1186,7 +1270,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBackendConfig") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1221,7 +1308,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBackendJob") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1256,7 +1346,10 @@ extension AmplifyBackendClient: AmplifyBackendClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBackendStorage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift index c67ff4a30ac..3277161645c 100644 --- a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift +++ b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift @@ -35,7 +35,7 @@ public protocol AmplifyBackendClientProtocol { func getBackend(input: GetBackendInput) async throws -> GetBackendOutputResponse /// Gets the details for a backend API. func getBackendAPI(input: GetBackendAPIInput) async throws -> GetBackendAPIOutputResponse - /// Generates a model schema for existing backend API resource. + /// Gets a model introspection schema for an existing backend API resource. func getBackendAPIModels(input: GetBackendAPIModelsInput) async throws -> GetBackendAPIModelsOutputResponse /// Gets a backend auth details. func getBackendAuth(input: GetBackendAuthInput) async throws -> GetBackendAuthOutputResponse diff --git a/Sources/Services/AWSAmplifyBackend/EndpointResolver.swift b/Sources/Services/AWSAmplifyBackend/EndpointResolver.swift index 66a3642d24d..86a54c2c8e7 100644 --- a/Sources/Services/AWSAmplifyBackend/EndpointResolver.swift +++ b/Sources/Services/AWSAmplifyBackend/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://amplifybackend.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSAmplifyBackend/models/Models.swift b/Sources/Services/AWSAmplifyBackend/models/Models.swift index df26a3581eb..3be08667f6e 100644 --- a/Sources/Services/AWSAmplifyBackend/models/Models.swift +++ b/Sources/Services/AWSAmplifyBackend/models/Models.swift @@ -634,9 +634,9 @@ extension AmplifyBackendClientTypes.BackendStoragePermissions: Swift.Codable { var authenticatedDecoded0:[AmplifyBackendClientTypes.AuthenticatedElement]? = nil if let authenticatedContainer = authenticatedContainer { authenticatedDecoded0 = [AmplifyBackendClientTypes.AuthenticatedElement]() - for string0 in authenticatedContainer { - if let string0 = string0 { - authenticatedDecoded0?.append(string0) + for enum0 in authenticatedContainer { + if let enum0 = enum0 { + authenticatedDecoded0?.append(enum0) } } } @@ -645,9 +645,9 @@ extension AmplifyBackendClientTypes.BackendStoragePermissions: Swift.Codable { var unAuthenticatedDecoded0:[AmplifyBackendClientTypes.UnAuthenticatedElement]? = nil if let unAuthenticatedContainer = unAuthenticatedContainer { unAuthenticatedDecoded0 = [AmplifyBackendClientTypes.UnAuthenticatedElement]() - for string0 in unAuthenticatedContainer { - if let string0 = string0 { - unAuthenticatedDecoded0?.append(string0) + for enum0 in unAuthenticatedContainer { + if let enum0 = enum0 { + unAuthenticatedDecoded0?.append(enum0) } } } @@ -1398,9 +1398,9 @@ extension AmplifyBackendClientTypes.CreateBackendAuthOAuthConfig: Swift.Codable var oAuthScopesDecoded0:[AmplifyBackendClientTypes.OAuthScopesElement]? = nil if let oAuthScopesContainer = oAuthScopesContainer { oAuthScopesDecoded0 = [AmplifyBackendClientTypes.OAuthScopesElement]() - for string0 in oAuthScopesContainer { - if let string0 = string0 { - oAuthScopesDecoded0?.append(string0) + for enum0 in oAuthScopesContainer { + if let enum0 = enum0 { + oAuthScopesDecoded0?.append(enum0) } } } @@ -1616,9 +1616,9 @@ extension AmplifyBackendClientTypes.CreateBackendAuthPasswordPolicyConfig: Swift var additionalConstraintsDecoded0:[AmplifyBackendClientTypes.AdditionalConstraintsElement]? = nil if let additionalConstraintsContainer = additionalConstraintsContainer { additionalConstraintsDecoded0 = [AmplifyBackendClientTypes.AdditionalConstraintsElement]() - for string0 in additionalConstraintsContainer { - if let string0 = string0 { - additionalConstraintsDecoded0?.append(string0) + for enum0 in additionalConstraintsContainer { + if let enum0 = enum0 { + additionalConstraintsDecoded0?.append(enum0) } } } @@ -1774,9 +1774,9 @@ extension AmplifyBackendClientTypes.CreateBackendAuthUserPoolConfig: Swift.Codab var requiredSignUpAttributesDecoded0:[AmplifyBackendClientTypes.RequiredSignUpAttributesElement]? = nil if let requiredSignUpAttributesContainer = requiredSignUpAttributesContainer { requiredSignUpAttributesDecoded0 = [AmplifyBackendClientTypes.RequiredSignUpAttributesElement]() - for string0 in requiredSignUpAttributesContainer { - if let string0 = string0 { - requiredSignUpAttributesDecoded0?.append(string0) + for enum0 in requiredSignUpAttributesContainer { + if let enum0 = enum0 { + requiredSignUpAttributesDecoded0?.append(enum0) } } } @@ -3949,9 +3949,11 @@ extension GetBackendAPIModelsOutputResponse: ClientRuntime.HttpResponseBinding { let responseDecoder = decoder { let data = reader.toBytes().getData() let output: GetBackendAPIModelsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.modelIntrospectionSchema = output.modelIntrospectionSchema self.models = output.models self.status = output.status } else { + self.modelIntrospectionSchema = nil self.models = nil self.status = nil } @@ -3959,16 +3961,20 @@ extension GetBackendAPIModelsOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GetBackendAPIModelsOutputResponse: Swift.Equatable { + /// Stringified JSON of the model introspection schema for an existing backend API resource. + public var modelIntrospectionSchema: Swift.String? /// Stringified JSON of the datastore model. public var models: Swift.String? /// The current status of the request. public var status: AmplifyBackendClientTypes.Status? public init ( + modelIntrospectionSchema: Swift.String? = nil, models: Swift.String? = nil, status: AmplifyBackendClientTypes.Status? = nil ) { + self.modelIntrospectionSchema = modelIntrospectionSchema self.models = models self.status = status } @@ -3977,10 +3983,12 @@ public struct GetBackendAPIModelsOutputResponse: Swift.Equatable { struct GetBackendAPIModelsOutputResponseBody: Swift.Equatable { let models: Swift.String? let status: AmplifyBackendClientTypes.Status? + let modelIntrospectionSchema: Swift.String? } extension GetBackendAPIModelsOutputResponseBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case modelIntrospectionSchema = "modelIntrospectionSchema" case models = "models" case status = "status" } @@ -3991,6 +3999,8 @@ extension GetBackendAPIModelsOutputResponseBody: Swift.Decodable { models = modelsDecoded let statusDecoded = try containerValues.decodeIfPresent(AmplifyBackendClientTypes.Status.self, forKey: .status) status = statusDecoded + let modelIntrospectionSchemaDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .modelIntrospectionSchema) + modelIntrospectionSchema = modelIntrospectionSchemaDecoded } } @@ -6594,9 +6604,9 @@ extension AmplifyBackendClientTypes.Settings: Swift.Codable { var mfaTypesDecoded0:[AmplifyBackendClientTypes.MfaTypesElement]? = nil if let mfaTypesContainer = mfaTypesContainer { mfaTypesDecoded0 = [AmplifyBackendClientTypes.MfaTypesElement]() - for string0 in mfaTypesContainer { - if let string0 = string0 { - mfaTypesDecoded0?.append(string0) + for enum0 in mfaTypesContainer { + if let enum0 = enum0 { + mfaTypesDecoded0?.append(enum0) } } } @@ -7354,9 +7364,9 @@ extension AmplifyBackendClientTypes.UpdateBackendAuthOAuthConfig: Swift.Codable var oAuthScopesDecoded0:[AmplifyBackendClientTypes.OAuthScopesElement]? = nil if let oAuthScopesContainer = oAuthScopesContainer { oAuthScopesDecoded0 = [AmplifyBackendClientTypes.OAuthScopesElement]() - for string0 in oAuthScopesContainer { - if let string0 = string0 { - oAuthScopesDecoded0?.append(string0) + for enum0 in oAuthScopesContainer { + if let enum0 = enum0 { + oAuthScopesDecoded0?.append(enum0) } } } @@ -7568,9 +7578,9 @@ extension AmplifyBackendClientTypes.UpdateBackendAuthPasswordPolicyConfig: Swift var additionalConstraintsDecoded0:[AmplifyBackendClientTypes.AdditionalConstraintsElement]? = nil if let additionalConstraintsContainer = additionalConstraintsContainer { additionalConstraintsDecoded0 = [AmplifyBackendClientTypes.AdditionalConstraintsElement]() - for string0 in additionalConstraintsContainer { - if let string0 = string0 { - additionalConstraintsDecoded0?.append(string0) + for enum0 in additionalConstraintsContainer { + if let enum0 = enum0 { + additionalConstraintsDecoded0?.append(enum0) } } } diff --git a/Sources/Services/AWSAppConfig/Paginators.swift b/Sources/Services/AWSAppConfig/Paginators.swift index 9c5bdb4e58b..95b75391df4 100644 --- a/Sources/Services/AWSAppConfig/Paginators.swift +++ b/Sources/Services/AWSAppConfig/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -24,16 +23,15 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListConfigurationProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationProfilesOutputResponse` extension AppConfigClient { + /// Paginate over `[ListConfigurationProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationProfilesOutputResponse` public func listConfigurationProfilesPaginated(input: ListConfigurationProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationProfilesInput.nextToken, outputKey: \ListConfigurationProfilesOutputResponse.nextToken, paginationFunction: self.listConfigurationProfiles(input:)) } @@ -48,16 +46,15 @@ extension ListConfigurationProfilesInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` public func listDeploymentsPaginated(input: ListDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentsInput.nextToken, outputKey: \ListDeploymentsOutputResponse.nextToken, paginationFunction: self.listDeployments(input:)) } @@ -72,16 +69,15 @@ extension ListDeploymentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDeploymentStrategiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentStrategiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentStrategiesOutputResponse` extension AppConfigClient { + /// Paginate over `[ListDeploymentStrategiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentStrategiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentStrategiesOutputResponse` public func listDeploymentStrategiesPaginated(input: ListDeploymentStrategiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentStrategiesInput.nextToken, outputKey: \ListDeploymentStrategiesOutputResponse.nextToken, paginationFunction: self.listDeploymentStrategies(input:)) } @@ -94,16 +90,15 @@ extension ListDeploymentStrategiesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEnvironmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnvironmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListEnvironmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnvironmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` public func listEnvironmentsPaginated(input: ListEnvironmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnvironmentsInput.nextToken, outputKey: \ListEnvironmentsOutputResponse.nextToken, paginationFunction: self.listEnvironments(input:)) } @@ -117,16 +112,15 @@ extension ListEnvironmentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExtensionAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExtensionAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExtensionAssociationsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListExtensionAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExtensionAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExtensionAssociationsOutputResponse` public func listExtensionAssociationsPaginated(input: ListExtensionAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExtensionAssociationsInput.nextToken, outputKey: \ListExtensionAssociationsOutputResponse.nextToken, paginationFunction: self.listExtensionAssociations(input:)) } @@ -142,16 +136,15 @@ extension ListExtensionAssociationsInput: ClientRuntime.PaginateToken { resourceIdentifier: self.resourceIdentifier )} } - -/// Paginate over `[ListExtensionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExtensionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExtensionsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListExtensionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExtensionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExtensionsOutputResponse` public func listExtensionsPaginated(input: ListExtensionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExtensionsInput.nextToken, outputKey: \ListExtensionsOutputResponse.nextToken, paginationFunction: self.listExtensions(input:)) } @@ -165,16 +158,15 @@ extension ListExtensionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListHostedConfigurationVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHostedConfigurationVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHostedConfigurationVersionsOutputResponse` extension AppConfigClient { + /// Paginate over `[ListHostedConfigurationVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHostedConfigurationVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHostedConfigurationVersionsOutputResponse` public func listHostedConfigurationVersionsPaginated(input: ListHostedConfigurationVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHostedConfigurationVersionsInput.nextToken, outputKey: \ListHostedConfigurationVersionsOutputResponse.nextToken, paginationFunction: self.listHostedConfigurationVersions(input:)) } diff --git a/Sources/Services/AWSAppMesh/Paginators.swift b/Sources/Services/AWSAppMesh/Paginators.swift index 9629f2a0a2b..8f3c3f2640d 100644 --- a/Sources/Services/AWSAppMesh/Paginators.swift +++ b/Sources/Services/AWSAppMesh/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension AppMeshClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -26,10 +25,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[AppMeshClientTypes.TagRef]` -/// - Returns: `[AppMeshClientTypes.TagRef]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[AppMeshClientTypes.TagRef]` + /// - Returns: `[AppMeshClientTypes.TagRef]` public func tags() async throws -> [AppMeshClientTypes.TagRef] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSAppRunner/AppRunnerClient.swift b/Sources/Services/AWSAppRunner/AppRunnerClient.swift index dce73f4a987..eeabf7d8a39 100644 --- a/Sources/Services/AWSAppRunner/AppRunnerClient.swift +++ b/Sources/Services/AWSAppRunner/AppRunnerClient.swift @@ -224,7 +224,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateCustomDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -260,7 +263,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createAutoScalingConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -296,7 +302,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -332,7 +341,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createObservabilityConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -368,7 +380,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -404,7 +419,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createVpcConnector") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -440,7 +458,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createVpcIngressConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -476,7 +497,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAutoScalingConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -512,7 +536,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -548,7 +575,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteObservabilityConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -584,7 +614,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -620,7 +653,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteVpcConnector") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -664,7 +700,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteVpcIngressConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -700,7 +739,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeAutoScalingConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -736,7 +778,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeCustomDomains") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -772,7 +817,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeObservabilityConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -808,7 +856,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -844,7 +895,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeVpcConnector") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -880,7 +934,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeVpcIngressConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -916,7 +973,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateCustomDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -952,7 +1012,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAutoScalingConfigurations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -988,7 +1051,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listConnections") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1024,7 +1090,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listObservabilityConfigurations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1060,7 +1129,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listOperations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1096,7 +1168,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listServices") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1132,7 +1207,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1168,7 +1246,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listVpcConnectors") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1204,7 +1285,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listVpcIngressConnections") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1240,7 +1324,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "pauseService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1276,7 +1363,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "resumeService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1312,7 +1402,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "startDeployment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1348,7 +1441,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1384,7 +1480,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1420,7 +1519,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1462,7 +1564,10 @@ extension AppRunnerClient: AppRunnerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateVpcIngressConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSAppRunner/EndpointResolver.swift b/Sources/Services/AWSAppRunner/EndpointResolver.swift index 3b0509badca..5f887e5d492 100644 --- a/Sources/Services/AWSAppRunner/EndpointResolver.swift +++ b/Sources/Services/AWSAppRunner/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://apprunner.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSAppRunner/Paginators.swift b/Sources/Services/AWSAppRunner/Paginators.swift index 514b6954d36..a3c98233ca1 100644 --- a/Sources/Services/AWSAppRunner/Paginators.swift +++ b/Sources/Services/AWSAppRunner/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCustomDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCustomDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCustomDomainsOutputResponse` extension AppRunnerClient { + /// Paginate over `[DescribeCustomDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCustomDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCustomDomainsOutputResponse` public func describeCustomDomainsPaginated(input: DescribeCustomDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCustomDomainsInput.nextToken, outputKey: \DescribeCustomDomainsOutputResponse.nextToken, paginationFunction: self.describeCustomDomains(input:)) } @@ -25,16 +24,15 @@ extension DescribeCustomDomainsInput: ClientRuntime.PaginateToken { serviceArn: self.serviceArn )} } - -/// Paginate over `[ListAutoScalingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAutoScalingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAutoScalingConfigurationsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListAutoScalingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAutoScalingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAutoScalingConfigurationsOutputResponse` public func listAutoScalingConfigurationsPaginated(input: ListAutoScalingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAutoScalingConfigurationsInput.nextToken, outputKey: \ListAutoScalingConfigurationsOutputResponse.nextToken, paginationFunction: self.listAutoScalingConfigurations(input:)) } @@ -49,16 +47,15 @@ extension ListAutoScalingConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectionsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectionsOutputResponse` public func listConnectionsPaginated(input: ListConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectionsInput.nextToken, outputKey: \ListConnectionsOutputResponse.nextToken, paginationFunction: self.listConnections(input:)) } @@ -72,16 +69,15 @@ extension ListConnectionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListObservabilityConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObservabilityConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObservabilityConfigurationsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListObservabilityConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObservabilityConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObservabilityConfigurationsOutputResponse` public func listObservabilityConfigurationsPaginated(input: ListObservabilityConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObservabilityConfigurationsInput.nextToken, outputKey: \ListObservabilityConfigurationsOutputResponse.nextToken, paginationFunction: self.listObservabilityConfigurations(input:)) } @@ -96,16 +92,15 @@ extension ListObservabilityConfigurationsInput: ClientRuntime.PaginateToken { observabilityConfigurationName: self.observabilityConfigurationName )} } - -/// Paginate over `[ListOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` public func listOperationsPaginated(input: ListOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOperationsInput.nextToken, outputKey: \ListOperationsOutputResponse.nextToken, paginationFunction: self.listOperations(input:)) } @@ -119,16 +114,15 @@ extension ListOperationsInput: ClientRuntime.PaginateToken { serviceArn: self.serviceArn )} } - -/// Paginate over `[ListServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` public func listServicesPaginated(input: ListServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesInput.nextToken, outputKey: \ListServicesOutputResponse.nextToken, paginationFunction: self.listServices(input:)) } @@ -141,16 +135,15 @@ extension ListServicesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListVpcConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVpcConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVpcConnectorsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListVpcConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVpcConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVpcConnectorsOutputResponse` public func listVpcConnectorsPaginated(input: ListVpcConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVpcConnectorsInput.nextToken, outputKey: \ListVpcConnectorsOutputResponse.nextToken, paginationFunction: self.listVpcConnectors(input:)) } @@ -163,16 +156,15 @@ extension ListVpcConnectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListVpcIngressConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVpcIngressConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVpcIngressConnectionsOutputResponse` extension AppRunnerClient { + /// Paginate over `[ListVpcIngressConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVpcIngressConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVpcIngressConnectionsOutputResponse` public func listVpcIngressConnectionsPaginated(input: ListVpcIngressConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVpcIngressConnectionsInput.nextToken, outputKey: \ListVpcIngressConnectionsOutputResponse.nextToken, paginationFunction: self.listVpcIngressConnections(input:)) } diff --git a/Sources/Services/AWSAppRunner/models/Models.swift b/Sources/Services/AWSAppRunner/models/Models.swift index 8dd34bd762c..066a959dfe6 100644 --- a/Sources/Services/AWSAppRunner/models/Models.swift +++ b/Sources/Services/AWSAppRunner/models/Models.swift @@ -597,6 +597,7 @@ extension AppRunnerClientTypes.CodeConfigurationValues: Swift.Codable { case buildCommand = "BuildCommand" case port = "Port" case runtime = "Runtime" + case runtimeEnvironmentSecrets = "RuntimeEnvironmentSecrets" case runtimeEnvironmentVariables = "RuntimeEnvironmentVariables" case startCommand = "StartCommand" } @@ -612,6 +613,12 @@ extension AppRunnerClientTypes.CodeConfigurationValues: Swift.Codable { if let runtime = self.runtime { try encodeContainer.encode(runtime.rawValue, forKey: .runtime) } + if let runtimeEnvironmentSecrets = runtimeEnvironmentSecrets { + var runtimeEnvironmentSecretsContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .runtimeEnvironmentSecrets) + for (dictKey0, runtimeEnvironmentSecrets0) in runtimeEnvironmentSecrets { + try runtimeEnvironmentSecretsContainer.encode(runtimeEnvironmentSecrets0, forKey: ClientRuntime.Key(stringValue: dictKey0)) + } + } if let runtimeEnvironmentVariables = runtimeEnvironmentVariables { var runtimeEnvironmentVariablesContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .runtimeEnvironmentVariables) for (dictKey0, runtimeEnvironmentVariables0) in runtimeEnvironmentVariables { @@ -644,12 +651,23 @@ extension AppRunnerClientTypes.CodeConfigurationValues: Swift.Codable { } } runtimeEnvironmentVariables = runtimeEnvironmentVariablesDecoded0 + let runtimeEnvironmentSecretsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .runtimeEnvironmentSecrets) + var runtimeEnvironmentSecretsDecoded0: [Swift.String:Swift.String]? = nil + if let runtimeEnvironmentSecretsContainer = runtimeEnvironmentSecretsContainer { + runtimeEnvironmentSecretsDecoded0 = [Swift.String:Swift.String]() + for (key0, runtimeenvironmentsecretsvalue0) in runtimeEnvironmentSecretsContainer { + if let runtimeenvironmentsecretsvalue0 = runtimeenvironmentsecretsvalue0 { + runtimeEnvironmentSecretsDecoded0?[key0] = runtimeenvironmentsecretsvalue0 + } + } + } + runtimeEnvironmentSecrets = runtimeEnvironmentSecretsDecoded0 } } extension AppRunnerClientTypes.CodeConfigurationValues: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CodeConfigurationValues(port: \(Swift.String(describing: port)), runtime: \(Swift.String(describing: runtime)), runtimeEnvironmentVariables: \(Swift.String(describing: runtimeEnvironmentVariables)), buildCommand: \"CONTENT_REDACTED\", startCommand: \"CONTENT_REDACTED\")"} + "CodeConfigurationValues(port: \(Swift.String(describing: port)), runtime: \(Swift.String(describing: runtime)), runtimeEnvironmentSecrets: \(Swift.String(describing: runtimeEnvironmentSecrets)), runtimeEnvironmentVariables: \(Swift.String(describing: runtimeEnvironmentVariables)), buildCommand: \"CONTENT_REDACTED\", startCommand: \"CONTENT_REDACTED\")"} } extension AppRunnerClientTypes { @@ -662,7 +680,13 @@ extension AppRunnerClientTypes { /// A runtime environment type for building and running an App Runner service. It represents a programming language runtime. /// This member is required. public var runtime: AppRunnerClientTypes.Runtime? - /// The environment variables that are available to your running App Runner service. An array of key-value pairs. Keys with a prefix of AWSAPPRUNNER are reserved for system use and aren't valid. + /// An array of key-value pairs representing the secrets and parameters that get referenced to your service as an environment variable. The supported values are either the full Amazon Resource Name (ARN) of the Secrets Manager secret or the full ARN of the parameter in the Amazon Web Services Systems Manager Parameter Store. + /// + /// * If the Amazon Web Services Systems Manager Parameter Store parameter exists in the same Amazon Web Services Region as the service that you're launching, you can use either the full ARN or name of the secret. If the parameter exists in a different Region, then the full ARN must be specified. + /// + /// * Currently, cross account referencing of Amazon Web Services Systems Manager Parameter Store parameter is not supported. + public var runtimeEnvironmentSecrets: [Swift.String:Swift.String]? + /// The environment variables that are available to your running App Runner service. An array of key-value pairs. public var runtimeEnvironmentVariables: [Swift.String:Swift.String]? /// The command App Runner runs to start your application. public var startCommand: Swift.String? @@ -671,6 +695,7 @@ extension AppRunnerClientTypes { buildCommand: Swift.String? = nil, port: Swift.String? = nil, runtime: AppRunnerClientTypes.Runtime? = nil, + runtimeEnvironmentSecrets: [Swift.String:Swift.String]? = nil, runtimeEnvironmentVariables: [Swift.String:Swift.String]? = nil, startCommand: Swift.String? = nil ) @@ -678,6 +703,7 @@ extension AppRunnerClientTypes { self.buildCommand = buildCommand self.port = port self.runtime = runtime + self.runtimeEnvironmentSecrets = runtimeEnvironmentSecrets self.runtimeEnvironmentVariables = runtimeEnvironmentVariables self.startCommand = startCommand } @@ -4060,6 +4086,7 @@ extension AppRunnerClientTypes { extension AppRunnerClientTypes.ImageConfiguration: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case port = "Port" + case runtimeEnvironmentSecrets = "RuntimeEnvironmentSecrets" case runtimeEnvironmentVariables = "RuntimeEnvironmentVariables" case startCommand = "StartCommand" } @@ -4069,6 +4096,12 @@ extension AppRunnerClientTypes.ImageConfiguration: Swift.Codable { if let port = self.port { try encodeContainer.encode(port, forKey: .port) } + if let runtimeEnvironmentSecrets = runtimeEnvironmentSecrets { + var runtimeEnvironmentSecretsContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .runtimeEnvironmentSecrets) + for (dictKey0, runtimeEnvironmentSecrets0) in runtimeEnvironmentSecrets { + try runtimeEnvironmentSecretsContainer.encode(runtimeEnvironmentSecrets0, forKey: ClientRuntime.Key(stringValue: dictKey0)) + } + } if let runtimeEnvironmentVariables = runtimeEnvironmentVariables { var runtimeEnvironmentVariablesContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .runtimeEnvironmentVariables) for (dictKey0, runtimeEnvironmentVariables0) in runtimeEnvironmentVariables { @@ -4097,12 +4130,23 @@ extension AppRunnerClientTypes.ImageConfiguration: Swift.Codable { startCommand = startCommandDecoded let portDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .port) port = portDecoded + let runtimeEnvironmentSecretsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .runtimeEnvironmentSecrets) + var runtimeEnvironmentSecretsDecoded0: [Swift.String:Swift.String]? = nil + if let runtimeEnvironmentSecretsContainer = runtimeEnvironmentSecretsContainer { + runtimeEnvironmentSecretsDecoded0 = [Swift.String:Swift.String]() + for (key0, runtimeenvironmentsecretsvalue0) in runtimeEnvironmentSecretsContainer { + if let runtimeenvironmentsecretsvalue0 = runtimeenvironmentsecretsvalue0 { + runtimeEnvironmentSecretsDecoded0?[key0] = runtimeenvironmentsecretsvalue0 + } + } + } + runtimeEnvironmentSecrets = runtimeEnvironmentSecretsDecoded0 } } extension AppRunnerClientTypes.ImageConfiguration: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "ImageConfiguration(port: \(Swift.String(describing: port)), runtimeEnvironmentVariables: \(Swift.String(describing: runtimeEnvironmentVariables)), startCommand: \"CONTENT_REDACTED\")"} + "ImageConfiguration(port: \(Swift.String(describing: port)), runtimeEnvironmentSecrets: \(Swift.String(describing: runtimeEnvironmentSecrets)), runtimeEnvironmentVariables: \(Swift.String(describing: runtimeEnvironmentVariables)), startCommand: \"CONTENT_REDACTED\")"} } extension AppRunnerClientTypes { @@ -4110,18 +4154,26 @@ extension AppRunnerClientTypes { public struct ImageConfiguration: Swift.Equatable { /// The port that your application listens to in the container. Default: 8080 public var port: Swift.String? - /// Environment variables that are available to your running App Runner service. An array of key-value pairs. Keys with a prefix of AWSAPPRUNNER are reserved for system use and aren't valid. + /// An array of key-value pairs representing the secrets and parameters that get referenced to your service as an environment variable. The supported values are either the full Amazon Resource Name (ARN) of the Secrets Manager secret or the full ARN of the parameter in the Amazon Web Services Systems Manager Parameter Store. + /// + /// * If the Amazon Web Services Systems Manager Parameter Store parameter exists in the same Amazon Web Services Region as the service that you're launching, you can use either the full ARN or name of the secret. If the parameter exists in a different Region, then the full ARN must be specified. + /// + /// * Currently, cross account referencing of Amazon Web Services Systems Manager Parameter Store parameter is not supported. + public var runtimeEnvironmentSecrets: [Swift.String:Swift.String]? + /// Environment variables that are available to your running App Runner service. An array of key-value pairs. public var runtimeEnvironmentVariables: [Swift.String:Swift.String]? /// An optional command that App Runner runs to start the application in the source image. If specified, this command overrides the Docker image’s default start command. public var startCommand: Swift.String? public init ( port: Swift.String? = nil, + runtimeEnvironmentSecrets: [Swift.String:Swift.String]? = nil, runtimeEnvironmentVariables: [Swift.String:Swift.String]? = nil, startCommand: Swift.String? = nil ) { self.port = port + self.runtimeEnvironmentSecrets = runtimeEnvironmentSecrets self.runtimeEnvironmentVariables = runtimeEnvironmentVariables self.startCommand = startCommand } diff --git a/Sources/Services/AWSAppStream/Paginators.swift b/Sources/Services/AWSAppStream/Paginators.swift index 96bd0f1410e..cb1682b0ca4 100644 --- a/Sources/Services/AWSAppStream/Paginators.swift +++ b/Sources/Services/AWSAppStream/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeImagePermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImagePermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImagePermissionsOutputResponse` extension AppStreamClient { + /// Paginate over `[DescribeImagePermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImagePermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImagePermissionsOutputResponse` public func describeImagePermissionsPaginated(input: DescribeImagePermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImagePermissionsInput.nextToken, outputKey: \DescribeImagePermissionsOutputResponse.nextToken, paginationFunction: self.describeImagePermissions(input:)) } @@ -26,16 +25,15 @@ extension DescribeImagePermissionsInput: ClientRuntime.PaginateToken { sharedAwsAccountIds: self.sharedAwsAccountIds )} } - -/// Paginate over `[DescribeImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` extension AppStreamClient { + /// Paginate over `[DescribeImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` public func describeImagesPaginated(input: DescribeImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImagesInput.nextToken, outputKey: \DescribeImagesOutputResponse.nextToken, paginationFunction: self.describeImages(input:)) } diff --git a/Sources/Services/AWSAppflow/Paginators.swift b/Sources/Services/AWSAppflow/Paginators.swift index 19e429d0812..f08fe279056 100644 --- a/Sources/Services/AWSAppflow/Paginators.swift +++ b/Sources/Services/AWSAppflow/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeConnectorProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConnectorProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectorProfilesOutputResponse` extension AppflowClient { + /// Paginate over `[DescribeConnectorProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConnectorProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectorProfilesOutputResponse` public func describeConnectorProfilesPaginated(input: DescribeConnectorProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConnectorProfilesInput.nextToken, outputKey: \DescribeConnectorProfilesOutputResponse.nextToken, paginationFunction: self.describeConnectorProfiles(input:)) } @@ -27,16 +26,15 @@ extension DescribeConnectorProfilesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectorsOutputResponse` extension AppflowClient { + /// Paginate over `[DescribeConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectorsOutputResponse` public func describeConnectorsPaginated(input: DescribeConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConnectorsInput.nextToken, outputKey: \DescribeConnectorsOutputResponse.nextToken, paginationFunction: self.describeConnectors(input:)) } @@ -50,16 +48,15 @@ extension DescribeConnectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFlowExecutionRecordsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFlowExecutionRecordsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFlowExecutionRecordsOutputResponse` extension AppflowClient { + /// Paginate over `[DescribeFlowExecutionRecordsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFlowExecutionRecordsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFlowExecutionRecordsOutputResponse` public func describeFlowExecutionRecordsPaginated(input: DescribeFlowExecutionRecordsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFlowExecutionRecordsInput.nextToken, outputKey: \DescribeFlowExecutionRecordsOutputResponse.nextToken, paginationFunction: self.describeFlowExecutionRecords(input:)) } @@ -73,16 +70,15 @@ extension DescribeFlowExecutionRecordsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` extension AppflowClient { + /// Paginate over `[ListConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` public func listConnectorsPaginated(input: ListConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectorsInput.nextToken, outputKey: \ListConnectorsOutputResponse.nextToken, paginationFunction: self.listConnectors(input:)) } @@ -95,16 +91,15 @@ extension ListConnectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFlowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFlowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFlowsOutputResponse` extension AppflowClient { + /// Paginate over `[ListFlowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFlowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFlowsOutputResponse` public func listFlowsPaginated(input: ListFlowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFlowsInput.nextToken, outputKey: \ListFlowsOutputResponse.nextToken, paginationFunction: self.listFlows(input:)) } diff --git a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift index 2877386825d..e7cc0c71428 100644 --- a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift +++ b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift @@ -224,7 +224,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteScalingPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -260,7 +263,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteScheduledAction") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -296,7 +302,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "deregisterScalableTarget") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -332,7 +341,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeScalableTargets") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -349,7 +361,7 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { return result } - /// Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. + /// Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. For information about viewing scaling activities using the Amazon Web Services CLI, see [Scaling activities for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html). public func describeScalingActivities(input: DescribeScalingActivitiesInput) async throws -> DescribeScalingActivitiesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -368,7 +380,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeScalingActivities") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -404,7 +419,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeScalingPolicies") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -440,7 +458,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeScheduledActions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -476,7 +497,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "putScalingPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -512,7 +536,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "putScheduledAction") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -529,7 +556,7 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { return result } - /// Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. When you register a new scalable target, you must specify values for minimum and maximum capacity. Current capacity will be adjusted within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of this range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). You can also view the scaling policies for a service namespace by using [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). If you no longer need a scalable target, you can deregister it by using [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html). To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. If you call the RegisterScalableTarget API to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters. + /// Registers or updates a scalable target, the resource that you want to scale. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace, which represents some capacity dimension of the underlying service. When you register a new scalable target, you must specify values for the minimum and maximum capacity. If the specified resource is not active in the target service, this operation does not change the resource's current capacity. Otherwise, it changes the resource's current capacity to a value that is inside of this range. If you choose to add a scaling policy, current capacity is adjustable within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of the minimum and maximum range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). You can also view the scaling policies for a service namespace by using [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). If you no longer need a scalable target, you can deregister it by using [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html). To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. If you call the RegisterScalableTarget API to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters. public func registerScalableTarget(input: RegisterScalableTargetInput) async throws -> RegisterScalableTargetOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -548,7 +575,10 @@ extension ApplicationAutoScalingClient: ApplicationAutoScalingClientProtocol { var operation = ClientRuntime.OperationStack(id: "registerScalableTarget") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift index 8103126fd18..69d5aa6c4e0 100644 --- a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift +++ b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift @@ -53,7 +53,7 @@ public protocol ApplicationAutoScalingClientProtocol { func deregisterScalableTarget(input: DeregisterScalableTargetInput) async throws -> DeregisterScalableTargetOutputResponse /// Gets information about the scalable targets in the specified namespace. You can filter the results using ResourceIds and ScalableDimension. func describeScalableTargets(input: DescribeScalableTargetsInput) async throws -> DescribeScalableTargetsOutputResponse - /// Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. + /// Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. For information about viewing scaling activities using the Amazon Web Services CLI, see [Scaling activities for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html). func describeScalingActivities(input: DescribeScalingActivitiesInput) async throws -> DescribeScalingActivitiesOutputResponse /// Describes the Application Auto Scaling scaling policies for the specified service namespace. You can filter the results using ResourceId, ScalableDimension, and PolicyNames. For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the Application Auto Scaling User Guide. func describeScalingPolicies(input: DescribeScalingPoliciesInput) async throws -> DescribeScalingPoliciesOutputResponse @@ -63,7 +63,7 @@ public protocol ApplicationAutoScalingClientProtocol { func putScalingPolicy(input: PutScalingPolicyInput) async throws -> PutScalingPolicyOutputResponse /// Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target. When start and end times are specified with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops. To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted. For more information, see [Scheduled scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) in the Application Auto Scaling User Guide. If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted. func putScheduledAction(input: PutScheduledActionInput) async throws -> PutScheduledActionOutputResponse - /// Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. When you register a new scalable target, you must specify values for minimum and maximum capacity. Current capacity will be adjusted within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of this range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). You can also view the scaling policies for a service namespace by using [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). If you no longer need a scalable target, you can deregister it by using [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html). To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. If you call the RegisterScalableTarget API to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters. + /// Registers or updates a scalable target, the resource that you want to scale. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace, which represents some capacity dimension of the underlying service. When you register a new scalable target, you must specify values for the minimum and maximum capacity. If the specified resource is not active in the target service, this operation does not change the resource's current capacity. Otherwise, it changes the resource's current capacity to a value that is inside of this range. If you choose to add a scaling policy, current capacity is adjustable within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of the minimum and maximum range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). You can also view the scaling policies for a service namespace by using [DescribeScalableTargets](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html). If you no longer need a scalable target, you can deregister it by using [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html). To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. If you call the RegisterScalableTarget API to update an existing scalable target, Application Auto Scaling retrieves the current capacity of the resource. If it is below the minimum capacity or above the maximum capacity, Application Auto Scaling adjusts the capacity of the scalable target to place it within these bounds, even if you don't include the MinCapacity or MaxCapacity request parameters. func registerScalableTarget(input: RegisterScalableTargetInput) async throws -> RegisterScalableTargetOutputResponse } diff --git a/Sources/Services/AWSApplicationAutoScaling/EndpointResolver.swift b/Sources/Services/AWSApplicationAutoScaling/EndpointResolver.swift index 2b36bd14cd7..c791f3dd4da 100644 --- a/Sources/Services/AWSApplicationAutoScaling/EndpointResolver.swift +++ b/Sources/Services/AWSApplicationAutoScaling/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSApplicationAutoScaling/Paginators.swift b/Sources/Services/AWSApplicationAutoScaling/Paginators.swift index 58bec676627..8974372fb3a 100644 --- a/Sources/Services/AWSApplicationAutoScaling/Paginators.swift +++ b/Sources/Services/AWSApplicationAutoScaling/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeScalableTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScalableTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScalableTargetsOutputResponse` extension ApplicationAutoScalingClient { + /// Paginate over `[DescribeScalableTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScalableTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScalableTargetsOutputResponse` public func describeScalableTargetsPaginated(input: DescribeScalableTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScalableTargetsInput.nextToken, outputKey: \DescribeScalableTargetsOutputResponse.nextToken, paginationFunction: self.describeScalableTargets(input:)) } @@ -28,24 +27,23 @@ extension DescribeScalableTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScalableTargetsPaginated` -/// to access the nested member `[ApplicationAutoScalingClientTypes.ScalableTarget]` -/// - Returns: `[ApplicationAutoScalingClientTypes.ScalableTarget]` extension PaginatorSequence where Input == DescribeScalableTargetsInput, Output == DescribeScalableTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScalableTargetsPaginated` + /// to access the nested member `[ApplicationAutoScalingClientTypes.ScalableTarget]` + /// - Returns: `[ApplicationAutoScalingClientTypes.ScalableTarget]` public func scalableTargets() async throws -> [ApplicationAutoScalingClientTypes.ScalableTarget] { return try await self.asyncCompactMap { item in item.scalableTargets } } } - -/// Paginate over `[DescribeScalingActivitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScalingActivitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingActivitiesOutputResponse` extension ApplicationAutoScalingClient { + /// Paginate over `[DescribeScalingActivitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScalingActivitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingActivitiesOutputResponse` public func describeScalingActivitiesPaginated(input: DescribeScalingActivitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScalingActivitiesInput.nextToken, outputKey: \DescribeScalingActivitiesOutputResponse.nextToken, paginationFunction: self.describeScalingActivities(input:)) } @@ -54,6 +52,7 @@ extension ApplicationAutoScalingClient { extension DescribeScalingActivitiesInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> DescribeScalingActivitiesInput { return DescribeScalingActivitiesInput( + includeNotScaledActivities: self.includeNotScaledActivities, maxResults: self.maxResults, nextToken: token, resourceId: self.resourceId, @@ -62,24 +61,23 @@ extension DescribeScalingActivitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScalingActivitiesPaginated` -/// to access the nested member `[ApplicationAutoScalingClientTypes.ScalingActivity]` -/// - Returns: `[ApplicationAutoScalingClientTypes.ScalingActivity]` extension PaginatorSequence where Input == DescribeScalingActivitiesInput, Output == DescribeScalingActivitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScalingActivitiesPaginated` + /// to access the nested member `[ApplicationAutoScalingClientTypes.ScalingActivity]` + /// - Returns: `[ApplicationAutoScalingClientTypes.ScalingActivity]` public func scalingActivities() async throws -> [ApplicationAutoScalingClientTypes.ScalingActivity] { return try await self.asyncCompactMap { item in item.scalingActivities } } } - -/// Paginate over `[DescribeScalingPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScalingPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingPoliciesOutputResponse` extension ApplicationAutoScalingClient { + /// Paginate over `[DescribeScalingPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScalingPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingPoliciesOutputResponse` public func describeScalingPoliciesPaginated(input: DescribeScalingPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScalingPoliciesInput.nextToken, outputKey: \DescribeScalingPoliciesOutputResponse.nextToken, paginationFunction: self.describeScalingPolicies(input:)) } @@ -97,24 +95,23 @@ extension DescribeScalingPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScalingPoliciesPaginated` -/// to access the nested member `[ApplicationAutoScalingClientTypes.ScalingPolicy]` -/// - Returns: `[ApplicationAutoScalingClientTypes.ScalingPolicy]` extension PaginatorSequence where Input == DescribeScalingPoliciesInput, Output == DescribeScalingPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScalingPoliciesPaginated` + /// to access the nested member `[ApplicationAutoScalingClientTypes.ScalingPolicy]` + /// - Returns: `[ApplicationAutoScalingClientTypes.ScalingPolicy]` public func scalingPolicies() async throws -> [ApplicationAutoScalingClientTypes.ScalingPolicy] { return try await self.asyncCompactMap { item in item.scalingPolicies } } } - -/// Paginate over `[DescribeScheduledActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduledActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` extension ApplicationAutoScalingClient { + /// Paginate over `[DescribeScheduledActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduledActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` public func describeScheduledActionsPaginated(input: DescribeScheduledActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduledActionsInput.nextToken, outputKey: \DescribeScheduledActionsOutputResponse.nextToken, paginationFunction: self.describeScheduledActions(input:)) } @@ -132,10 +129,10 @@ extension DescribeScheduledActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` -/// to access the nested member `[ApplicationAutoScalingClientTypes.ScheduledAction]` -/// - Returns: `[ApplicationAutoScalingClientTypes.ScheduledAction]` extension PaginatorSequence where Input == DescribeScheduledActionsInput, Output == DescribeScheduledActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` + /// to access the nested member `[ApplicationAutoScalingClientTypes.ScheduledAction]` + /// - Returns: `[ApplicationAutoScalingClientTypes.ScheduledAction]` public func scheduledActions() async throws -> [ApplicationAutoScalingClientTypes.ScheduledAction] { return try await self.asyncCompactMap { item in item.scheduledActions } } diff --git a/Sources/Services/AWSApplicationAutoScaling/models/Models.swift b/Sources/Services/AWSApplicationAutoScaling/models/Models.swift index 296f9409614..f375f257497 100644 --- a/Sources/Services/AWSApplicationAutoScaling/models/Models.swift +++ b/Sources/Services/AWSApplicationAutoScaling/models/Models.swift @@ -192,18 +192,18 @@ extension ApplicationAutoScalingClientTypes.CustomizedMetricSpecification: Swift } extension ApplicationAutoScalingClientTypes { - /// Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling. For information about the available metrics for a service, see [Amazon Web Services Services That Publish CloudWatch Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the Amazon CloudWatch User Guide. To create your customized metric specification: + /// Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling. For information about the available metrics for a service, see [Amazon Web Services services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the Amazon CloudWatch User Guide. To create your customized metric specification: /// - /// * Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see [Publish Custom Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) in the Amazon CloudWatch User Guide. + /// * Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see [Publish custom metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) in the Amazon CloudWatch User Guide. /// /// * Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases. /// /// - /// For more information about CloudWatch, see [Amazon CloudWatch Concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). + /// For an example of how creating new metrics can be useful, see [Scaling based on Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) in the Amazon EC2 Auto Scaling User Guide. This topic mentions Auto Scaling groups, but the same scenario for Amazon SQS can apply to the target tracking scaling policies that you create for a Spot Fleet by using the Application Auto Scaling API. For more information about the CloudWatch terminology below, see [Amazon CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html) in the Amazon CloudWatch User Guide. public struct CustomizedMetricSpecification: Swift.Equatable { /// The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. public var dimensions: [ApplicationAutoScalingClientTypes.MetricDimension]? - /// The name of the metric. + /// The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). /// This member is required. public var metricName: Swift.String? /// The namespace of the metric. @@ -212,7 +212,7 @@ extension ApplicationAutoScalingClientTypes { /// The statistic of the metric. /// This member is required. public var statistic: ApplicationAutoScalingClientTypes.MetricStatistic? - /// The unit of the metric. + /// The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the Amazon CloudWatch API Reference. public var unit: Swift.String? public init ( @@ -323,7 +323,7 @@ public struct DeleteScalingPolicyInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -517,7 +517,7 @@ public struct DeleteScheduledActionInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -710,7 +710,7 @@ public struct DeregisterScalableTargetInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -908,7 +908,7 @@ public struct DescribeScalableTargetsInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -1081,6 +1081,7 @@ extension DescribeScalableTargetsOutputResponseBody: Swift.Decodable { extension DescribeScalingActivitiesInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case includeNotScaledActivities = "IncludeNotScaledActivities" case maxResults = "MaxResults" case nextToken = "NextToken" case resourceId = "ResourceId" @@ -1090,6 +1091,9 @@ extension DescribeScalingActivitiesInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let includeNotScaledActivities = self.includeNotScaledActivities { + try encodeContainer.encode(includeNotScaledActivities, forKey: .includeNotScaledActivities) + } if let maxResults = self.maxResults { try encodeContainer.encode(maxResults, forKey: .maxResults) } @@ -1115,6 +1119,8 @@ extension DescribeScalingActivitiesInput: ClientRuntime.URLPathProvider { } public struct DescribeScalingActivitiesInput: Swift.Equatable { + /// Specifies whether to include activities that aren't scaled (not scaled activities) in the response. Not scaled activities are activities that aren't completed or started for various reasons, such as preventing infinite scaling loops. For help interpreting the not scaled reason details in the response, see [Scaling activities for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html). + public var includeNotScaledActivities: Swift.Bool? /// The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. public var maxResults: Swift.Int? /// The token for the next set of results. @@ -1173,7 +1179,7 @@ public struct DescribeScalingActivitiesInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -1200,6 +1206,7 @@ public struct DescribeScalingActivitiesInput: Swift.Equatable { public var serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? public init ( + includeNotScaledActivities: Swift.Bool? = nil, maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, resourceId: Swift.String? = nil, @@ -1207,6 +1214,7 @@ public struct DescribeScalingActivitiesInput: Swift.Equatable { serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? = nil ) { + self.includeNotScaledActivities = includeNotScaledActivities self.maxResults = maxResults self.nextToken = nextToken self.resourceId = resourceId @@ -1221,10 +1229,12 @@ struct DescribeScalingActivitiesInputBody: Swift.Equatable { let scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? let maxResults: Swift.Int? let nextToken: Swift.String? + let includeNotScaledActivities: Swift.Bool? } extension DescribeScalingActivitiesInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case includeNotScaledActivities = "IncludeNotScaledActivities" case maxResults = "MaxResults" case nextToken = "NextToken" case resourceId = "ResourceId" @@ -1244,6 +1254,8 @@ extension DescribeScalingActivitiesInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let includeNotScaledActivitiesDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .includeNotScaledActivities) + includeNotScaledActivities = includeNotScaledActivitiesDecoded } } @@ -1438,7 +1450,7 @@ public struct DescribeScalingPoliciesInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -1718,7 +1730,7 @@ public struct DescribeScheduledActionsInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -2317,6 +2329,82 @@ extension ApplicationAutoScalingClientTypes { } } +extension ApplicationAutoScalingClientTypes.NotScaledReason: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case code = "Code" + case currentCapacity = "CurrentCapacity" + case maxCapacity = "MaxCapacity" + case minCapacity = "MinCapacity" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let code = self.code { + try encodeContainer.encode(code, forKey: .code) + } + if let currentCapacity = self.currentCapacity { + try encodeContainer.encode(currentCapacity, forKey: .currentCapacity) + } + if let maxCapacity = self.maxCapacity { + try encodeContainer.encode(maxCapacity, forKey: .maxCapacity) + } + if let minCapacity = self.minCapacity { + try encodeContainer.encode(minCapacity, forKey: .minCapacity) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let codeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .code) + code = codeDecoded + let maxCapacityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxCapacity) + maxCapacity = maxCapacityDecoded + let minCapacityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .minCapacity) + minCapacity = minCapacityDecoded + let currentCapacityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .currentCapacity) + currentCapacity = currentCapacityDecoded + } +} + +extension ApplicationAutoScalingClientTypes { + /// Describes the reason for an activity that isn't scaled (not scaled activity), in machine-readable format. For help interpreting the not scaled reason details, see [Scaling activities for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scaling-activities.html). + public struct NotScaledReason: Swift.Equatable { + /// A code that represents the reason for not scaling. Valid values: + /// + /// * AutoScalingAnticipatedFlapping + /// + /// * TargetServicePutResourceAsUnscalable + /// + /// * AlreadyAtMaxCapacity + /// + /// * AlreadyAtMinCapacity + /// + /// * AlreadyAtDesiredCapacity + /// This member is required. + public var code: Swift.String? + /// The current capacity. + public var currentCapacity: Swift.Int? + /// The maximum capacity. + public var maxCapacity: Swift.Int? + /// The minimum capacity. + public var minCapacity: Swift.Int? + + public init ( + code: Swift.String? = nil, + currentCapacity: Swift.Int? = nil, + maxCapacity: Swift.Int? = nil, + minCapacity: Swift.Int? = nil + ) + { + self.code = code + self.currentCapacity = currentCapacity + self.maxCapacity = maxCapacity + self.minCapacity = minCapacity + } + } + +} + extension ObjectNotFoundException { public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { if case .stream(let reader) = httpResponse.body, @@ -2429,10 +2517,10 @@ extension ApplicationAutoScalingClientTypes.PredefinedMetricSpecification: Swift extension ApplicationAutoScalingClientTypes { /// Represents a predefined metric for a target tracking scaling policy to use with Application Auto Scaling. Only the Amazon Web Services that you're using send metrics to Amazon CloudWatch. To determine whether a desired metric already exists by looking up its namespace and dimension using the CloudWatch metrics dashboard in the console, follow the procedure in [Building dashboards with CloudWatch](https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) in the Application Auto Scaling User Guide. public struct PredefinedMetricSpecification: Swift.Equatable { - /// The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleet requests and ECS services. + /// The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. /// This member is required. public var predefinedMetricType: ApplicationAutoScalingClientTypes.MetricType? - /// Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet request or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff. Where: + /// Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff. Where: /// /// * app// is the final portion of the load balancer ARN /// @@ -2498,10 +2586,10 @@ extension PutScalingPolicyInput: ClientRuntime.URLPathProvider { } public struct PutScalingPolicyInput: Swift.Equatable { - /// The name of the scaling policy. + /// The name of the scaling policy. You cannot change the name of a scaling policy, but you can delete the original scaling policy and create a new scaling policy with the same settings and a different name. /// This member is required. public var policyName: Swift.String? - /// The policy type. This parameter is required if you are creating a scaling policy. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the Application Auto Scaling User Guide. + /// The scaling policy type. This parameter is required if you are creating a scaling policy. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the Application Auto Scaling User Guide. public var policyType: ApplicationAutoScalingClientTypes.PolicyType? /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. /// @@ -2558,7 +2646,7 @@ public struct PutScalingPolicyInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -2851,7 +2939,7 @@ public struct PutScheduledActionInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -3054,9 +3142,28 @@ extension RegisterScalableTargetInput: ClientRuntime.URLPathProvider { } public struct RegisterScalableTargetInput: Swift.Equatable { - /// The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see [Service Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in the Amazon Web Services General Reference. + /// The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in the Amazon Web Services General Reference. public var maxCapacity: Swift.Int? - /// The minimum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand. This property is required when registering a new scalable target. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1. + /// The minimum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand. This property is required when registering a new scalable target. For the following resources, the minimum value allowed is 0. + /// + /// * AppStream 2.0 fleets + /// + /// * Aurora DB clusters + /// + /// * ECS services + /// + /// * EMR clusters + /// + /// * Lambda provisioned concurrency + /// + /// * SageMaker endpoint variants + /// + /// * Spot Fleets + /// + /// * custom resources + /// + /// + /// It's strongly recommended that you specify a value greater than 0. A value greater than 0 means that data points are continuously reported to CloudWatch that scaling policies can use to scale on a metric like average CPU utilization. For all other resources, the minimum allowed value depends on the type of resource that you are using. If you provide a value that is lower than what a resource can accept, an error occurs. In which case, the error message will provide the minimum value that the resource can accept. public var minCapacity: Swift.Int? /// The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier. /// @@ -3115,7 +3222,7 @@ public struct RegisterScalableTargetInput: Swift.Equatable { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -3468,7 +3575,7 @@ extension ApplicationAutoScalingClientTypes { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -3549,9 +3656,9 @@ extension ApplicationAutoScalingClientTypes.ScalableTargetAction: Swift.Codable extension ApplicationAutoScalingClientTypes { /// Represents the minimum and maximum capacity for a scheduled action. public struct ScalableTargetAction: Swift.Equatable { - /// The maximum capacity. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see [Service Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in the Amazon Web Services General Reference. + /// The maximum capacity. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in the Amazon Web Services General Reference. public var maxCapacity: Swift.Int? - /// The minimum capacity. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1. + /// The minimum capacity. When the scheduled action runs, the resource will have at least this much capacity, but it might have more depending on other settings, such as the target utilization level of a target tracking scaling policy. public var minCapacity: Swift.Int? public init ( @@ -3573,6 +3680,7 @@ extension ApplicationAutoScalingClientTypes.ScalingActivity: Swift.Codable { case description = "Description" case details = "Details" case endTime = "EndTime" + case notScaledReasons = "NotScaledReasons" case resourceId = "ResourceId" case scalableDimension = "ScalableDimension" case serviceNamespace = "ServiceNamespace" @@ -3598,6 +3706,12 @@ extension ApplicationAutoScalingClientTypes.ScalingActivity: Swift.Codable { if let endTime = self.endTime { try encodeContainer.encodeTimestamp(endTime, format: .epochSeconds, forKey: .endTime) } + if let notScaledReasons = notScaledReasons { + var notScaledReasonsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .notScaledReasons) + for notscaledreason0 in notScaledReasons { + try notScaledReasonsContainer.encode(notscaledreason0) + } + } if let resourceId = self.resourceId { try encodeContainer.encode(resourceId, forKey: .resourceId) } @@ -3642,6 +3756,17 @@ extension ApplicationAutoScalingClientTypes.ScalingActivity: Swift.Codable { statusMessage = statusMessageDecoded let detailsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .details) details = detailsDecoded + let notScaledReasonsContainer = try containerValues.decodeIfPresent([ApplicationAutoScalingClientTypes.NotScaledReason?].self, forKey: .notScaledReasons) + var notScaledReasonsDecoded0:[ApplicationAutoScalingClientTypes.NotScaledReason]? = nil + if let notScaledReasonsContainer = notScaledReasonsContainer { + notScaledReasonsDecoded0 = [ApplicationAutoScalingClientTypes.NotScaledReason]() + for structure0 in notScaledReasonsContainer { + if let structure0 = structure0 { + notScaledReasonsDecoded0?.append(structure0) + } + } + } + notScaledReasons = notScaledReasonsDecoded0 } } @@ -3661,6 +3786,8 @@ extension ApplicationAutoScalingClientTypes { public var details: Swift.String? /// The Unix timestamp for when the scaling activity ended. public var endTime: ClientRuntime.Date? + /// Machine-readable data that describes the reason for a not scaled activity. Only available when [DescribeScalingActivities](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalingActivities.html) includes not scaled activities. + public var notScaledReasons: [ApplicationAutoScalingClientTypes.NotScaledReason]? /// The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. /// /// * ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. @@ -3716,7 +3843,7 @@ extension ApplicationAutoScalingClientTypes { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -3757,6 +3884,7 @@ extension ApplicationAutoScalingClientTypes { description: Swift.String? = nil, details: Swift.String? = nil, endTime: ClientRuntime.Date? = nil, + notScaledReasons: [ApplicationAutoScalingClientTypes.NotScaledReason]? = nil, resourceId: Swift.String? = nil, scalableDimension: ApplicationAutoScalingClientTypes.ScalableDimension? = nil, serviceNamespace: ApplicationAutoScalingClientTypes.ServiceNamespace? = nil, @@ -3770,6 +3898,7 @@ extension ApplicationAutoScalingClientTypes { self.description = description self.details = details self.endTime = endTime + self.notScaledReasons = notScaledReasons self.resourceId = resourceId self.scalableDimension = scalableDimension self.serviceNamespace = serviceNamespace @@ -3911,7 +4040,7 @@ extension ApplicationAutoScalingClientTypes.ScalingPolicy: Swift.Codable { } extension ApplicationAutoScalingClientTypes { - /// Represents a scaling policy to use with Application Auto Scaling. For more information about configuring scaling policies for a specific service, see [Getting started with Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) in the Application Auto Scaling User Guide. + /// Represents a scaling policy to use with Application Auto Scaling. For more information about configuring scaling policies for a specific service, see [Amazon Web Services services that you can use with Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/integrated-services-list.html) in the Application Auto Scaling User Guide. public struct ScalingPolicy: Swift.Equatable { /// The CloudWatch alarms associated with the scaling policy. public var alarms: [ApplicationAutoScalingClientTypes.Alarm]? @@ -3924,7 +4053,7 @@ extension ApplicationAutoScalingClientTypes { /// The name of the scaling policy. /// This member is required. public var policyName: Swift.String? - /// The scaling policy type. + /// The scaling policy type. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. /// This member is required. public var policyType: ApplicationAutoScalingClientTypes.PolicyType? /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. @@ -3982,7 +4111,7 @@ extension ApplicationAutoScalingClientTypes { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -4183,7 +4312,7 @@ extension ApplicationAutoScalingClientTypes { /// /// * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. /// - /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an SageMaker model endpoint variant. + /// * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint variant. /// /// * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. /// @@ -4693,7 +4822,7 @@ extension ApplicationAutoScalingClientTypes { /// /// * Amazon MSK broker storage public var scaleOutCooldown: Swift.Int? - /// The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. + /// The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. If the scaling policy specifies the ALBRequestCountPerTarget predefined metric, specify the target utilization as the optimal average request count per target during any one-minute interval. /// This member is required. public var targetValue: Swift.Double? diff --git a/Sources/Services/AWSApplicationCostProfiler/Paginators.swift b/Sources/Services/AWSApplicationCostProfiler/Paginators.swift index a95c295f7dc..d82e68e181f 100644 --- a/Sources/Services/AWSApplicationCostProfiler/Paginators.swift +++ b/Sources/Services/AWSApplicationCostProfiler/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListReportDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportDefinitionsOutputResponse` extension ApplicationCostProfilerClient { + /// Paginate over `[ListReportDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportDefinitionsOutputResponse` public func listReportDefinitionsPaginated(input: ListReportDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportDefinitionsInput.nextToken, outputKey: \ListReportDefinitionsOutputResponse.nextToken, paginationFunction: self.listReportDefinitions(input:)) } diff --git a/Sources/Services/AWSApplicationDiscoveryService/Paginators.swift b/Sources/Services/AWSApplicationDiscoveryService/Paginators.swift index 1df14c47743..99dcb5f494a 100644 --- a/Sources/Services/AWSApplicationDiscoveryService/Paginators.swift +++ b/Sources/Services/AWSApplicationDiscoveryService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeContinuousExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeContinuousExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeContinuousExportsOutputResponse` extension ApplicationDiscoveryClient { + /// Paginate over `[DescribeContinuousExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeContinuousExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeContinuousExportsOutputResponse` public func describeContinuousExportsPaginated(input: DescribeContinuousExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeContinuousExportsInput.nextToken, outputKey: \DescribeContinuousExportsOutputResponse.nextToken, paginationFunction: self.describeContinuousExports(input:)) } @@ -25,16 +24,15 @@ extension DescribeContinuousExportsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeImportTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImportTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImportTasksOutputResponse` extension ApplicationDiscoveryClient { + /// Paginate over `[DescribeImportTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImportTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImportTasksOutputResponse` public func describeImportTasksPaginated(input: DescribeImportTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImportTasksInput.nextToken, outputKey: \DescribeImportTasksOutputResponse.nextToken, paginationFunction: self.describeImportTasks(input:)) } diff --git a/Sources/Services/AWSApplicationInsights/Paginators.swift b/Sources/Services/AWSApplicationInsights/Paginators.swift index 7c0334f2e0c..fb0df5d1af0 100644 --- a/Sources/Services/AWSApplicationInsights/Paginators.swift +++ b/Sources/Services/AWSApplicationInsights/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -24,16 +23,15 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` public func listComponentsPaginated(input: ListComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentsInput.nextToken, outputKey: \ListComponentsOutputResponse.nextToken, paginationFunction: self.listComponents(input:)) } @@ -47,16 +45,15 @@ extension ListComponentsInput: ClientRuntime.PaginateToken { resourceGroupName: self.resourceGroupName )} } - -/// Paginate over `[ListConfigurationHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationHistoryOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListConfigurationHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationHistoryOutputResponse` public func listConfigurationHistoryPaginated(input: ListConfigurationHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationHistoryInput.nextToken, outputKey: \ListConfigurationHistoryOutputResponse.nextToken, paginationFunction: self.listConfigurationHistory(input:)) } @@ -73,16 +70,15 @@ extension ListConfigurationHistoryInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[ListLogPatternsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLogPatternsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLogPatternsOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListLogPatternsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLogPatternsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLogPatternsOutputResponse` public func listLogPatternsPaginated(input: ListLogPatternsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLogPatternsInput.nextToken, outputKey: \ListLogPatternsOutputResponse.nextToken, paginationFunction: self.listLogPatterns(input:)) } @@ -97,16 +93,15 @@ extension ListLogPatternsInput: ClientRuntime.PaginateToken { resourceGroupName: self.resourceGroupName )} } - -/// Paginate over `[ListLogPatternSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLogPatternSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLogPatternSetsOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListLogPatternSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLogPatternSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLogPatternSetsOutputResponse` public func listLogPatternSetsPaginated(input: ListLogPatternSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLogPatternSetsInput.nextToken, outputKey: \ListLogPatternSetsOutputResponse.nextToken, paginationFunction: self.listLogPatternSets(input:)) } @@ -120,16 +115,15 @@ extension ListLogPatternSetsInput: ClientRuntime.PaginateToken { resourceGroupName: self.resourceGroupName )} } - -/// Paginate over `[ListProblemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProblemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProblemsOutputResponse` extension ApplicationInsightsClient { + /// Paginate over `[ListProblemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProblemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProblemsOutputResponse` public func listProblemsPaginated(input: ListProblemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProblemsInput.nextToken, outputKey: \ListProblemsOutputResponse.nextToken, paginationFunction: self.listProblems(input:)) } diff --git a/Sources/Services/AWSAthena/Paginators.swift b/Sources/Services/AWSAthena/Paginators.swift index 0e3e5b101bc..e5bbc99fc65 100644 --- a/Sources/Services/AWSAthena/Paginators.swift +++ b/Sources/Services/AWSAthena/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetQueryResultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetQueryResultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetQueryResultsOutputResponse` extension AthenaClient { + /// Paginate over `[GetQueryResultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetQueryResultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetQueryResultsOutputResponse` public func getQueryResultsPaginated(input: GetQueryResultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetQueryResultsInput.nextToken, outputKey: \GetQueryResultsOutputResponse.nextToken, paginationFunction: self.getQueryResults(input:)) } @@ -25,16 +24,15 @@ extension GetQueryResultsInput: ClientRuntime.PaginateToken { queryExecutionId: self.queryExecutionId )} } - -/// Paginate over `[ListApplicationDPUSizesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationDPUSizesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationDPUSizesOutputResponse` extension AthenaClient { + /// Paginate over `[ListApplicationDPUSizesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationDPUSizesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationDPUSizesOutputResponse` public func listApplicationDPUSizesPaginated(input: ListApplicationDPUSizesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationDPUSizesInput.nextToken, outputKey: \ListApplicationDPUSizesOutputResponse.nextToken, paginationFunction: self.listApplicationDPUSizes(input:)) } @@ -47,16 +45,15 @@ extension ListApplicationDPUSizesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListCalculationExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCalculationExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCalculationExecutionsOutputResponse` extension AthenaClient { + /// Paginate over `[ListCalculationExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCalculationExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCalculationExecutionsOutputResponse` public func listCalculationExecutionsPaginated(input: ListCalculationExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCalculationExecutionsInput.nextToken, outputKey: \ListCalculationExecutionsOutputResponse.nextToken, paginationFunction: self.listCalculationExecutions(input:)) } @@ -71,16 +68,15 @@ extension ListCalculationExecutionsInput: ClientRuntime.PaginateToken { stateFilter: self.stateFilter )} } - -/// Paginate over `[ListDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` extension AthenaClient { + /// Paginate over `[ListDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` public func listDatabasesPaginated(input: ListDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatabasesInput.nextToken, outputKey: \ListDatabasesOutputResponse.nextToken, paginationFunction: self.listDatabases(input:)) } @@ -95,24 +91,23 @@ extension ListDatabasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` -/// to access the nested member `[AthenaClientTypes.Database]` -/// - Returns: `[AthenaClientTypes.Database]` extension PaginatorSequence where Input == ListDatabasesInput, Output == ListDatabasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` + /// to access the nested member `[AthenaClientTypes.Database]` + /// - Returns: `[AthenaClientTypes.Database]` public func databaseList() async throws -> [AthenaClientTypes.Database] { return try await self.asyncCompactMap { item in item.databaseList } } } - -/// Paginate over `[ListDataCatalogsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataCatalogsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataCatalogsOutputResponse` extension AthenaClient { + /// Paginate over `[ListDataCatalogsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataCatalogsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataCatalogsOutputResponse` public func listDataCatalogsPaginated(input: ListDataCatalogsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataCatalogsInput.nextToken, outputKey: \ListDataCatalogsOutputResponse.nextToken, paginationFunction: self.listDataCatalogs(input:)) } @@ -126,24 +121,23 @@ extension ListDataCatalogsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataCatalogsPaginated` -/// to access the nested member `[AthenaClientTypes.DataCatalogSummary]` -/// - Returns: `[AthenaClientTypes.DataCatalogSummary]` extension PaginatorSequence where Input == ListDataCatalogsInput, Output == ListDataCatalogsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataCatalogsPaginated` + /// to access the nested member `[AthenaClientTypes.DataCatalogSummary]` + /// - Returns: `[AthenaClientTypes.DataCatalogSummary]` public func dataCatalogsSummary() async throws -> [AthenaClientTypes.DataCatalogSummary] { return try await self.asyncCompactMap { item in item.dataCatalogsSummary } } } - -/// Paginate over `[ListEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEngineVersionsOutputResponse` extension AthenaClient { + /// Paginate over `[ListEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEngineVersionsOutputResponse` public func listEngineVersionsPaginated(input: ListEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEngineVersionsInput.nextToken, outputKey: \ListEngineVersionsOutputResponse.nextToken, paginationFunction: self.listEngineVersions(input:)) } @@ -156,16 +150,15 @@ extension ListEngineVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExecutorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExecutorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExecutorsOutputResponse` extension AthenaClient { + /// Paginate over `[ListExecutorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExecutorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExecutorsOutputResponse` public func listExecutorsPaginated(input: ListExecutorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExecutorsInput.nextToken, outputKey: \ListExecutorsOutputResponse.nextToken, paginationFunction: self.listExecutors(input:)) } @@ -180,16 +173,15 @@ extension ListExecutorsInput: ClientRuntime.PaginateToken { sessionId: self.sessionId )} } - -/// Paginate over `[ListNamedQueriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNamedQueriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNamedQueriesOutputResponse` extension AthenaClient { + /// Paginate over `[ListNamedQueriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNamedQueriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNamedQueriesOutputResponse` public func listNamedQueriesPaginated(input: ListNamedQueriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNamedQueriesInput.nextToken, outputKey: \ListNamedQueriesOutputResponse.nextToken, paginationFunction: self.listNamedQueries(input:)) } @@ -203,16 +195,15 @@ extension ListNamedQueriesInput: ClientRuntime.PaginateToken { workGroup: self.workGroup )} } - -/// Paginate over `[ListPreparedStatementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPreparedStatementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPreparedStatementsOutputResponse` extension AthenaClient { + /// Paginate over `[ListPreparedStatementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPreparedStatementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPreparedStatementsOutputResponse` public func listPreparedStatementsPaginated(input: ListPreparedStatementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPreparedStatementsInput.nextToken, outputKey: \ListPreparedStatementsOutputResponse.nextToken, paginationFunction: self.listPreparedStatements(input:)) } @@ -226,16 +217,15 @@ extension ListPreparedStatementsInput: ClientRuntime.PaginateToken { workGroup: self.workGroup )} } - -/// Paginate over `[ListQueryExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueryExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueryExecutionsOutputResponse` extension AthenaClient { + /// Paginate over `[ListQueryExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueryExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueryExecutionsOutputResponse` public func listQueryExecutionsPaginated(input: ListQueryExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueryExecutionsInput.nextToken, outputKey: \ListQueryExecutionsOutputResponse.nextToken, paginationFunction: self.listQueryExecutions(input:)) } @@ -249,16 +239,15 @@ extension ListQueryExecutionsInput: ClientRuntime.PaginateToken { workGroup: self.workGroup )} } - -/// Paginate over `[ListSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSessionsOutputResponse` extension AthenaClient { + /// Paginate over `[ListSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSessionsOutputResponse` public func listSessionsPaginated(input: ListSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSessionsInput.nextToken, outputKey: \ListSessionsOutputResponse.nextToken, paginationFunction: self.listSessions(input:)) } @@ -273,16 +262,15 @@ extension ListSessionsInput: ClientRuntime.PaginateToken { workGroup: self.workGroup )} } - -/// Paginate over `[ListTableMetadataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTableMetadataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTableMetadataOutputResponse` extension AthenaClient { + /// Paginate over `[ListTableMetadataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTableMetadataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTableMetadataOutputResponse` public func listTableMetadataPaginated(input: ListTableMetadataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTableMetadataInput.nextToken, outputKey: \ListTableMetadataOutputResponse.nextToken, paginationFunction: self.listTableMetadata(input:)) } @@ -299,24 +287,23 @@ extension ListTableMetadataInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTableMetadataPaginated` -/// to access the nested member `[AthenaClientTypes.TableMetadata]` -/// - Returns: `[AthenaClientTypes.TableMetadata]` extension PaginatorSequence where Input == ListTableMetadataInput, Output == ListTableMetadataOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTableMetadataPaginated` + /// to access the nested member `[AthenaClientTypes.TableMetadata]` + /// - Returns: `[AthenaClientTypes.TableMetadata]` public func tableMetadataList() async throws -> [AthenaClientTypes.TableMetadata] { return try await self.asyncCompactMap { item in item.tableMetadataList } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension AthenaClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -331,24 +318,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[AthenaClientTypes.Tag]` -/// - Returns: `[AthenaClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[AthenaClientTypes.Tag]` + /// - Returns: `[AthenaClientTypes.Tag]` public func tags() async throws -> [AthenaClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListWorkGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkGroupsOutputResponse` extension AthenaClient { + /// Paginate over `[ListWorkGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkGroupsOutputResponse` public func listWorkGroupsPaginated(input: ListWorkGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkGroupsInput.nextToken, outputKey: \ListWorkGroupsOutputResponse.nextToken, paginationFunction: self.listWorkGroups(input:)) } diff --git a/Sources/Services/AWSAuditManager/AuditManagerClient.swift b/Sources/Services/AWSAuditManager/AuditManagerClient.swift index b9a6e5fead2..44f4bc62e4e 100644 --- a/Sources/Services/AWSAuditManager/AuditManagerClient.swift +++ b/Sources/Services/AWSAuditManager/AuditManagerClient.swift @@ -205,7 +205,7 @@ public struct AuditManagerClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFa } extension AuditManagerClient: AuditManagerClientProtocol { - /// Associates an evidence folder to an assessment report in a Audit Manager assessment. + /// Associates an evidence folder to an assessment report in an Audit Manager assessment. public func associateAssessmentReportEvidenceFolder(input: AssociateAssessmentReportEvidenceFolderInput) async throws -> AssociateAssessmentReportEvidenceFolderOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -224,7 +224,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateAssessmentReportEvidenceFolder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -259,7 +262,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchAssociateAssessmentReportEvidence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -294,7 +300,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchCreateDelegationByAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -329,7 +338,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchDeleteDelegationByAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -364,7 +376,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchDisassociateAssessmentReportEvidence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -408,7 +423,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchImportEvidenceToAssessmentControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -443,7 +461,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -478,7 +499,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createAssessmentFramework") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -513,7 +537,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createAssessmentReport") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -548,7 +575,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "createControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -583,7 +613,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -615,7 +648,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAssessmentFramework") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -647,7 +683,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAssessmentFrameworkShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -687,7 +726,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAssessmentReport") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -719,7 +761,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -732,20 +777,7 @@ extension AuditManagerClient: AuditManagerClientProtocol { return result } - /// Deregisters an account in Audit Manager. When you deregister your account from Audit Manager, your data isn’t deleted. If you want to delete your resource data, you must perform that task separately before you deregister your account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: - /// - /// * [DeleteAssessment](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html) (see also: [Deleting an assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentFramework](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html) (see also: [Deleting a custom framework](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentFrameworkShare](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html) (see also: [Deleting a share request](https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentReport](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html) (see also: [Deleting an assessment report](https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps) in the Audit Manager User Guide) - /// - /// * [DeleteControl](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html) (see also: [Deleting a custom control](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html) in the Audit Manager User Guide) - /// - /// - /// At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above. + /// Deregisters an account in Audit Manager. Before you deregister, you can use the [UpdateSettings](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_UpdateSettings.html) API operation to set your preferred data retention policy. By default, Audit Manager retains your data. If you want to delete your data, you can use the DeregistrationPolicy attribute to request the deletion of your data. For more information about data retention, see [Data Protection](https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html) in the Audit Manager User Guide. public func deregisterAccount(input: DeregisterAccountInput) async throws -> DeregisterAccountOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -764,7 +796,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deregisterAccount") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -777,7 +812,7 @@ extension AuditManagerClient: AuditManagerClientProtocol { return result } - /// Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward. Keep in mind the following cleanup task if you use evidence finder: Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isn’t completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually [deletes the event data store](https://docs.aws.amazon.com/userguide/awscloudtrail/latest/userguide/query-eds-disable-termination.html). This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager will ignore an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it. When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: + /// Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager stops collecting and attaching evidence to that delegated administrator account moving forward. Keep in mind the following cleanup task if you use evidence finder: Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isn’t completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually [deletes the event data store](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-eds-disable-termination.html). This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager ignores an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it. When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: /// /// * [DeleteAssessment](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html) (see also: [Deleting an assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html) in the Audit Manager User Guide) /// @@ -790,7 +825,7 @@ extension AuditManagerClient: AuditManagerClientProtocol { /// * [DeleteControl](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html) (see also: [Deleting a custom control](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html) in the Audit Manager User Guide) /// /// - /// At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above. + /// At this time, Audit Manager doesn't provide an option to delete evidence for a specific delegated administrator. Instead, when your management account deregisters Audit Manager, we perform a cleanup for the current delegated administrator account at the time of deregistration. public func deregisterOrganizationAdminAccount(input: DeregisterOrganizationAdminAccountInput) async throws -> DeregisterOrganizationAdminAccountOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -809,7 +844,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "deregisterOrganizationAdminAccount") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -844,7 +882,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateAssessmentReportEvidenceFolder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -879,7 +920,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAccountStatus") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -911,7 +955,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -943,7 +990,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAssessmentFramework") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -975,7 +1025,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAssessmentReportUrl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1007,7 +1060,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getChangeLogs") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1040,7 +1096,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1072,7 +1131,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDelegations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1105,7 +1167,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEvidence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1137,7 +1202,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEvidenceByEvidenceFolder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1170,7 +1238,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEvidenceFolder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1202,7 +1273,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEvidenceFoldersByAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1216,7 +1290,7 @@ extension AuditManagerClient: AuditManagerClientProtocol { return result } - /// Returns a list of evidence folders that are associated with a specified control of an assessment in Audit Manager. + /// Returns a list of evidence folders that are associated with a specified control in an Audit Manager assessment. public func getEvidenceFoldersByAssessmentControl(input: GetEvidenceFoldersByAssessmentControlInput) async throws -> GetEvidenceFoldersByAssessmentControlOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1235,7 +1309,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEvidenceFoldersByAssessmentControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1268,7 +1345,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInsights") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1300,7 +1380,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInsightsByAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1332,7 +1415,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOrganizationAdminAccount") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1364,7 +1450,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getServicesInScope") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1396,7 +1485,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "getSettings") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1428,7 +1520,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssessmentControlInsightsByControlDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1461,7 +1556,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssessmentFrameworkShareRequests") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1494,7 +1592,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssessmentFrameworks") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1527,7 +1628,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssessmentReports") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1560,7 +1664,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssessments") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1593,7 +1700,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listControlDomainInsights") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1626,7 +1736,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listControlDomainInsightsByAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1659,7 +1772,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listControlInsightsByControlDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1692,7 +1808,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listControls") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1725,7 +1844,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listKeywordsForDataSource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1758,7 +1880,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listNotifications") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1791,7 +1916,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1823,7 +1951,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "registerAccount") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1858,7 +1989,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "registerOrganizationAdminAccount") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1904,7 +2038,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "startAssessmentFrameworkShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1939,7 +2076,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1974,7 +2114,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2007,7 +2150,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2042,7 +2188,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessmentControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2077,7 +2226,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessmentControlSetStatus") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2112,7 +2264,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessmentFramework") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2147,7 +2302,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessmentFrameworkShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2182,7 +2340,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateAssessmentStatus") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2217,7 +2378,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateControl") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2252,7 +2416,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateSettings") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2287,7 +2454,10 @@ extension AuditManagerClient: AuditManagerClientProtocol { var operation = ClientRuntime.OperationStack(id: "validateAssessmentReportIntegrity") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift b/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift index 1e7e4e282a0..3727ca5deea 100644 --- a/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift +++ b/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift @@ -9,14 +9,14 @@ import ClientRuntime /// /// * [Data types](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Types.html): An alphabetical list of all Audit Manager data types. /// -/// * [Common parameters](https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonParameters.html): Parameters that all Query operations can use. +/// * [Common parameters](https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonParameters.html): Parameters that all operations can use. /// /// * [Common errors](https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonErrors.html): Client and server errors that all operations can return. /// /// /// If you're new to Audit Manager, we recommend that you review the [ Audit Manager User Guide](https://docs.aws.amazon.com/audit-manager/latest/userguide/what-is.html). public protocol AuditManagerClientProtocol { - /// Associates an evidence folder to an assessment report in a Audit Manager assessment. + /// Associates an evidence folder to an assessment report in an Audit Manager assessment. func associateAssessmentReportEvidenceFolder(input: AssociateAssessmentReportEvidenceFolderInput) async throws -> AssociateAssessmentReportEvidenceFolderOutputResponse /// Associates a list of evidence to an assessment report in an Audit Manager assessment. func batchAssociateAssessmentReportEvidence(input: BatchAssociateAssessmentReportEvidenceInput) async throws -> BatchAssociateAssessmentReportEvidenceOutputResponse @@ -62,22 +62,9 @@ public protocol AuditManagerClientProtocol { func deleteAssessmentReport(input: DeleteAssessmentReportInput) async throws -> DeleteAssessmentReportOutputResponse /// Deletes a custom control in Audit Manager. func deleteControl(input: DeleteControlInput) async throws -> DeleteControlOutputResponse - /// Deregisters an account in Audit Manager. When you deregister your account from Audit Manager, your data isn’t deleted. If you want to delete your resource data, you must perform that task separately before you deregister your account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: - /// - /// * [DeleteAssessment](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html) (see also: [Deleting an assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentFramework](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html) (see also: [Deleting a custom framework](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentFrameworkShare](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html) (see also: [Deleting a share request](https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html) in the Audit Manager User Guide) - /// - /// * [DeleteAssessmentReport](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html) (see also: [Deleting an assessment report](https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps) in the Audit Manager User Guide) - /// - /// * [DeleteControl](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html) (see also: [Deleting a custom control](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html) in the Audit Manager User Guide) - /// - /// - /// At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above. + /// Deregisters an account in Audit Manager. Before you deregister, you can use the [UpdateSettings](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_UpdateSettings.html) API operation to set your preferred data retention policy. By default, Audit Manager retains your data. If you want to delete your data, you can use the DeregistrationPolicy attribute to request the deletion of your data. For more information about data retention, see [Data Protection](https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html) in the Audit Manager User Guide. func deregisterAccount(input: DeregisterAccountInput) async throws -> DeregisterAccountOutputResponse - /// Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward. Keep in mind the following cleanup task if you use evidence finder: Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isn’t completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually [deletes the event data store](https://docs.aws.amazon.com/userguide/awscloudtrail/latest/userguide/query-eds-disable-termination.html). This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager will ignore an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it. When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: + /// Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager stops collecting and attaching evidence to that delegated administrator account moving forward. Keep in mind the following cleanup task if you use evidence finder: Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isn’t completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually [deletes the event data store](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-eds-disable-termination.html). This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager ignores an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it. When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. To delete your Audit Manager resource data, see the following instructions: /// /// * [DeleteAssessment](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html) (see also: [Deleting an assessment](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html) in the Audit Manager User Guide) /// @@ -90,7 +77,7 @@ public protocol AuditManagerClientProtocol { /// * [DeleteControl](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html) (see also: [Deleting a custom control](https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html) in the Audit Manager User Guide) /// /// - /// At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above. + /// At this time, Audit Manager doesn't provide an option to delete evidence for a specific delegated administrator. Instead, when your management account deregisters Audit Manager, we perform a cleanup for the current delegated administrator account at the time of deregistration. func deregisterOrganizationAdminAccount(input: DeregisterOrganizationAdminAccountInput) async throws -> DeregisterOrganizationAdminAccountOutputResponse /// Disassociates an evidence folder from the specified assessment report in Audit Manager. func disassociateAssessmentReportEvidenceFolder(input: DisassociateAssessmentReportEvidenceFolderInput) async throws -> DisassociateAssessmentReportEvidenceFolderOutputResponse @@ -116,7 +103,7 @@ public protocol AuditManagerClientProtocol { func getEvidenceFolder(input: GetEvidenceFolderInput) async throws -> GetEvidenceFolderOutputResponse /// Returns the evidence folders from a specified assessment in Audit Manager. func getEvidenceFoldersByAssessment(input: GetEvidenceFoldersByAssessmentInput) async throws -> GetEvidenceFoldersByAssessmentOutputResponse - /// Returns a list of evidence folders that are associated with a specified control of an assessment in Audit Manager. + /// Returns a list of evidence folders that are associated with a specified control in an Audit Manager assessment. func getEvidenceFoldersByAssessmentControl(input: GetEvidenceFoldersByAssessmentControlInput) async throws -> GetEvidenceFoldersByAssessmentControlOutputResponse /// Gets the latest analytics data for all your current active assessments. func getInsights(input: GetInsightsInput) async throws -> GetInsightsOutputResponse diff --git a/Sources/Services/AWSAuditManager/EndpointResolver.swift b/Sources/Services/AWSAuditManager/EndpointResolver.swift index b110ce91f02..c71989833f7 100644 --- a/Sources/Services/AWSAuditManager/EndpointResolver.swift +++ b/Sources/Services/AWSAuditManager/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://auditmanager.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSAuditManager/Paginators.swift b/Sources/Services/AWSAuditManager/Paginators.swift index 17010cfea2d..8de3d9e84ce 100644 --- a/Sources/Services/AWSAuditManager/Paginators.swift +++ b/Sources/Services/AWSAuditManager/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetChangeLogsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetChangeLogsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetChangeLogsOutputResponse` extension AuditManagerClient { + /// Paginate over `[GetChangeLogsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetChangeLogsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetChangeLogsOutputResponse` public func getChangeLogsPaginated(input: GetChangeLogsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetChangeLogsInput.nextToken, outputKey: \GetChangeLogsOutputResponse.nextToken, paginationFunction: self.getChangeLogs(input:)) } @@ -27,16 +26,15 @@ extension GetChangeLogsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetDelegationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDelegationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDelegationsOutputResponse` extension AuditManagerClient { + /// Paginate over `[GetDelegationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDelegationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDelegationsOutputResponse` public func getDelegationsPaginated(input: GetDelegationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDelegationsInput.nextToken, outputKey: \GetDelegationsOutputResponse.nextToken, paginationFunction: self.getDelegations(input:)) } @@ -49,16 +47,15 @@ extension GetDelegationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetEvidenceByEvidenceFolderOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEvidenceByEvidenceFolderInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceByEvidenceFolderOutputResponse` extension AuditManagerClient { + /// Paginate over `[GetEvidenceByEvidenceFolderOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEvidenceByEvidenceFolderInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceByEvidenceFolderOutputResponse` public func getEvidenceByEvidenceFolderPaginated(input: GetEvidenceByEvidenceFolderInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEvidenceByEvidenceFolderInput.nextToken, outputKey: \GetEvidenceByEvidenceFolderOutputResponse.nextToken, paginationFunction: self.getEvidenceByEvidenceFolder(input:)) } @@ -74,16 +71,15 @@ extension GetEvidenceByEvidenceFolderInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetEvidenceFoldersByAssessmentOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEvidenceFoldersByAssessmentInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceFoldersByAssessmentOutputResponse` extension AuditManagerClient { + /// Paginate over `[GetEvidenceFoldersByAssessmentOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEvidenceFoldersByAssessmentInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceFoldersByAssessmentOutputResponse` public func getEvidenceFoldersByAssessmentPaginated(input: GetEvidenceFoldersByAssessmentInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEvidenceFoldersByAssessmentInput.nextToken, outputKey: \GetEvidenceFoldersByAssessmentOutputResponse.nextToken, paginationFunction: self.getEvidenceFoldersByAssessment(input:)) } @@ -97,16 +93,15 @@ extension GetEvidenceFoldersByAssessmentInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetEvidenceFoldersByAssessmentControlOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEvidenceFoldersByAssessmentControlInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceFoldersByAssessmentControlOutputResponse` extension AuditManagerClient { + /// Paginate over `[GetEvidenceFoldersByAssessmentControlOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEvidenceFoldersByAssessmentControlInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEvidenceFoldersByAssessmentControlOutputResponse` public func getEvidenceFoldersByAssessmentControlPaginated(input: GetEvidenceFoldersByAssessmentControlInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEvidenceFoldersByAssessmentControlInput.nextToken, outputKey: \GetEvidenceFoldersByAssessmentControlOutputResponse.nextToken, paginationFunction: self.getEvidenceFoldersByAssessmentControl(input:)) } @@ -122,16 +117,15 @@ extension GetEvidenceFoldersByAssessmentControlInput: ClientRuntime.PaginateToke nextToken: token )} } - -/// Paginate over `[ListAssessmentControlInsightsByControlDomainOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentControlInsightsByControlDomainInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentControlInsightsByControlDomainOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListAssessmentControlInsightsByControlDomainOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentControlInsightsByControlDomainInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentControlInsightsByControlDomainOutputResponse` public func listAssessmentControlInsightsByControlDomainPaginated(input: ListAssessmentControlInsightsByControlDomainInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentControlInsightsByControlDomainInput.nextToken, outputKey: \ListAssessmentControlInsightsByControlDomainOutputResponse.nextToken, paginationFunction: self.listAssessmentControlInsightsByControlDomain(input:)) } @@ -146,16 +140,15 @@ extension ListAssessmentControlInsightsByControlDomainInput: ClientRuntime.Pagin nextToken: token )} } - -/// Paginate over `[ListAssessmentFrameworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentFrameworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentFrameworksOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListAssessmentFrameworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentFrameworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentFrameworksOutputResponse` public func listAssessmentFrameworksPaginated(input: ListAssessmentFrameworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentFrameworksInput.nextToken, outputKey: \ListAssessmentFrameworksOutputResponse.nextToken, paginationFunction: self.listAssessmentFrameworks(input:)) } @@ -169,16 +162,15 @@ extension ListAssessmentFrameworksInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssessmentFrameworkShareRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentFrameworkShareRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentFrameworkShareRequestsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListAssessmentFrameworkShareRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentFrameworkShareRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentFrameworkShareRequestsOutputResponse` public func listAssessmentFrameworkShareRequestsPaginated(input: ListAssessmentFrameworkShareRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentFrameworkShareRequestsInput.nextToken, outputKey: \ListAssessmentFrameworkShareRequestsOutputResponse.nextToken, paginationFunction: self.listAssessmentFrameworkShareRequests(input:)) } @@ -192,16 +184,15 @@ extension ListAssessmentFrameworkShareRequestsInput: ClientRuntime.PaginateToken requestType: self.requestType )} } - -/// Paginate over `[ListAssessmentReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentReportsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListAssessmentReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentReportsOutputResponse` public func listAssessmentReportsPaginated(input: ListAssessmentReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentReportsInput.nextToken, outputKey: \ListAssessmentReportsOutputResponse.nextToken, paginationFunction: self.listAssessmentReports(input:)) } @@ -214,16 +205,15 @@ extension ListAssessmentReportsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssessmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListAssessmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentsOutputResponse` public func listAssessmentsPaginated(input: ListAssessmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentsInput.nextToken, outputKey: \ListAssessmentsOutputResponse.nextToken, paginationFunction: self.listAssessments(input:)) } @@ -237,16 +227,15 @@ extension ListAssessmentsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListControlDomainInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListControlDomainInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListControlDomainInsightsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListControlDomainInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListControlDomainInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListControlDomainInsightsOutputResponse` public func listControlDomainInsightsPaginated(input: ListControlDomainInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListControlDomainInsightsInput.nextToken, outputKey: \ListControlDomainInsightsOutputResponse.nextToken, paginationFunction: self.listControlDomainInsights(input:)) } @@ -259,16 +248,15 @@ extension ListControlDomainInsightsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListControlDomainInsightsByAssessmentOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListControlDomainInsightsByAssessmentInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListControlDomainInsightsByAssessmentOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListControlDomainInsightsByAssessmentOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListControlDomainInsightsByAssessmentInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListControlDomainInsightsByAssessmentOutputResponse` public func listControlDomainInsightsByAssessmentPaginated(input: ListControlDomainInsightsByAssessmentInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListControlDomainInsightsByAssessmentInput.nextToken, outputKey: \ListControlDomainInsightsByAssessmentOutputResponse.nextToken, paginationFunction: self.listControlDomainInsightsByAssessment(input:)) } @@ -282,16 +270,15 @@ extension ListControlDomainInsightsByAssessmentInput: ClientRuntime.PaginateToke nextToken: token )} } - -/// Paginate over `[ListControlInsightsByControlDomainOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListControlInsightsByControlDomainInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListControlInsightsByControlDomainOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListControlInsightsByControlDomainOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListControlInsightsByControlDomainInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListControlInsightsByControlDomainOutputResponse` public func listControlInsightsByControlDomainPaginated(input: ListControlInsightsByControlDomainInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListControlInsightsByControlDomainInput.nextToken, outputKey: \ListControlInsightsByControlDomainOutputResponse.nextToken, paginationFunction: self.listControlInsightsByControlDomain(input:)) } @@ -305,16 +292,15 @@ extension ListControlInsightsByControlDomainInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListControlsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListControlsOutputResponse` public func listControlsPaginated(input: ListControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListControlsInput.nextToken, outputKey: \ListControlsOutputResponse.nextToken, paginationFunction: self.listControls(input:)) } @@ -328,16 +314,15 @@ extension ListControlsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListKeywordsForDataSourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKeywordsForDataSourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKeywordsForDataSourceOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListKeywordsForDataSourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKeywordsForDataSourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKeywordsForDataSourceOutputResponse` public func listKeywordsForDataSourcePaginated(input: ListKeywordsForDataSourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKeywordsForDataSourceInput.nextToken, outputKey: \ListKeywordsForDataSourceOutputResponse.nextToken, paginationFunction: self.listKeywordsForDataSource(input:)) } @@ -351,16 +336,15 @@ extension ListKeywordsForDataSourceInput: ClientRuntime.PaginateToken { source: self.source )} } - -/// Paginate over `[ListNotificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotificationsOutputResponse` extension AuditManagerClient { + /// Paginate over `[ListNotificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotificationsOutputResponse` public func listNotificationsPaginated(input: ListNotificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotificationsInput.nextToken, outputKey: \ListNotificationsOutputResponse.nextToken, paginationFunction: self.listNotifications(input:)) } diff --git a/Sources/Services/AWSAuditManager/models/Models.swift b/Sources/Services/AWSAuditManager/models/Models.swift index 5366c5d24a1..d53cb0e3959 100644 --- a/Sources/Services/AWSAuditManager/models/Models.swift +++ b/Sources/Services/AWSAuditManager/models/Models.swift @@ -417,7 +417,7 @@ extension AuditManagerClientTypes { public var comments: [AuditManagerClientTypes.ControlComment]? /// The description of the control. public var description: Swift.String? - /// The amount of evidence that's generated for the control. + /// The amount of evidence that's collected for the control. public var evidenceCount: Swift.Int /// The list of data sources for the evidence. public var evidenceSources: [Swift.String]? @@ -568,7 +568,7 @@ extension AuditManagerClientTypes { public var manualEvidenceCount: Swift.Int /// The roles that are associated with the control set. public var roles: [AuditManagerClientTypes.Role]? - /// Specifies the current status of the control set. + /// The current status of the control set. public var status: AuditManagerClientTypes.ControlSetStatus? /// The total number of evidence objects that are retrieved automatically for the control set. public var systemEvidenceCount: Swift.Int @@ -969,13 +969,13 @@ extension AuditManagerClientTypes { public var controlSetsCount: Swift.Int /// The number of controls that are associated with the framework. public var controlsCount: Swift.Int - /// Specifies when the framework was created. + /// The time when the framework was created. public var createdAt: ClientRuntime.Date? /// The description of the framework. public var description: Swift.String? /// The unique identifier for the framework. public var id: Swift.String? - /// Specifies when the framework was most recently updated. + /// The time when the framework was most recently updated. public var lastUpdatedAt: ClientRuntime.Date? /// The logo that's associated with the framework. public var logo: Swift.String? @@ -3196,7 +3196,7 @@ extension AuditManagerClientTypes { public var controlMappingSources: [AuditManagerClientTypes.ControlMappingSource]? /// The data source types that determine where Audit Manager collects evidence from for the control. public var controlSources: Swift.String? - /// Specifies when the control was created. + /// The time when the control was created. public var createdAt: ClientRuntime.Date? /// The IAM user or role that created the control. public var createdBy: Swift.String? @@ -3204,7 +3204,7 @@ extension AuditManagerClientTypes { public var description: Swift.String? /// The unique identifier for the control. public var id: Swift.String? - /// Specifies when the control was most recently updated. + /// The time when the control was most recently updated. public var lastUpdatedAt: ClientRuntime.Date? /// The IAM user or role that most recently updated the control. public var lastUpdatedBy: Swift.String? @@ -3619,7 +3619,7 @@ extension AuditManagerClientTypes { public var sourceName: Swift.String? /// The setup option for the data source. This option reflects if the evidence collection is automated or manual. public var sourceSetUpOption: AuditManagerClientTypes.SourceSetUpOption? - /// Specifies one of the five types of data sources for evidence collection. + /// Specifies one of the five data source types for evidence collection. public var sourceType: AuditManagerClientTypes.SourceType? /// The instructions for troubleshooting the control. public var troubleshootingText: Swift.String? @@ -3704,11 +3704,11 @@ extension AuditManagerClientTypes { public var arn: Swift.String? /// The data source that determines where Audit Manager collects evidence from for the control. public var controlSources: Swift.String? - /// Specifies when the control was created. + /// The time when the control was created. public var createdAt: ClientRuntime.Date? /// The unique identifier for the control. public var id: Swift.String? - /// Specifies when the control was most recently updated. + /// The time when the control was most recently updated. public var lastUpdatedAt: ClientRuntime.Date? /// The name of the control. public var name: Swift.String? @@ -4484,7 +4484,7 @@ public struct CreateAssessmentReportInput: Swift.Equatable { /// The name of the new assessment report. /// This member is required. public var name: Swift.String? - /// A SQL statement that represents an evidence finder query. Provide this parameter when you want to generate an assessment report from the results of an evidence finder search query. When you use this parameter, Audit Manager generates a one-time report using only the evidence from the query output. This report does not include any assessment evidence that was manually [added to a report using the console](https://docs.aws.amazon.com/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence), or [associated with a report using the API](https://docs.aws.amazon.com/APIReference-evidenceFinder/API_BatchAssociateAssessmentReportEvidence.html). To use this parameter, the [enablementStatus](https://docs.aws.amazon.com/APIReference-evidenceFinder/API_EvidenceFinderSetup.html#auditmanager-Type-EvidenceFinderSetup-enablementStatus) of evidence finder must be ENABLED. For examples and help resolving queryStatement validation exceptions, see [Troubleshooting evidence finder issues](https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions) in the AWS Audit Manager User Guide. + /// A SQL statement that represents an evidence finder query. Provide this parameter when you want to generate an assessment report from the results of an evidence finder search query. When you use this parameter, Audit Manager generates a one-time report using only the evidence from the query output. This report does not include any assessment evidence that was manually [added to a report using the console](https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence), or [associated with a report using the API](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_BatchAssociateAssessmentReportEvidence.html). To use this parameter, the [enablementStatus](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_EvidenceFinderEnablement.html#auditmanager-Type-EvidenceFinderEnablement-enablementStatus) of evidence finder must be ENABLED. For examples and help resolving queryStatement validation exceptions, see [Troubleshooting evidence finder issues](https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions) in the Audit Manager User Guide. public var queryStatement: Swift.String? public init ( @@ -5616,6 +5616,38 @@ public struct DeleteControlOutputResponse: Swift.Equatable { public init () { } } +extension AuditManagerClientTypes { + public enum DeleteResources: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case all + case `default` + case sdkUnknown(Swift.String) + + public static var allCases: [DeleteResources] { + return [ + .all, + .default, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .all: return "ALL" + case .default: return "DEFAULT" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = DeleteResources(rawValue: rawValue) ?? DeleteResources.sdkUnknown(rawValue) + } + } +} + extension DeregisterAccountInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { return "/account/deregisterAccount" @@ -5790,6 +5822,45 @@ public struct DeregisterOrganizationAdminAccountOutputResponse: Swift.Equatable public init () { } } +extension AuditManagerClientTypes.DeregistrationPolicy: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case deleteResources + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let deleteResources = self.deleteResources { + try encodeContainer.encode(deleteResources.rawValue, forKey: .deleteResources) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let deleteResourcesDecoded = try containerValues.decodeIfPresent(AuditManagerClientTypes.DeleteResources.self, forKey: .deleteResources) + deleteResources = deleteResourcesDecoded + } +} + +extension AuditManagerClientTypes { + /// The deregistration policy for the data that's stored in Audit Manager. You can use this attribute to determine how your data is handled when you [deregister Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html). By default, Audit Manager retains evidence data for two years from the time of its creation. Other Audit Manager resources (including assessments, custom controls, and custom frameworks) remain in Audit Manager indefinitely, and are available if you [re-register Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html) in the future. For more information about data retention, see [Data Protection](https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html) in the Audit Manager User Guide. If you choose to delete all data, this action permanently deletes all evidence data in your account within seven days. It also deletes all of the Audit Manager resources that you created, including assessments, custom controls, and custom frameworks. Your data will not be available if you re-register Audit Manager in the future. + public struct DeregistrationPolicy: Swift.Equatable { + /// Specifies which Audit Manager data will be deleted when you deregister Audit Manager. + /// + /// * If you set the value to ALL, all of your data is deleted within seven days of deregistration. + /// + /// * If you set the value to DEFAULT, none of your data is deleted at the time of deregistration. However, keep in mind that the Audit Manager data retention policy still applies. As a result, any evidence data will be deleted two years after its creation date. Your other Audit Manager resources will continue to exist indefinitely. + public var deleteResources: AuditManagerClientTypes.DeleteResources? + + public init ( + deleteResources: AuditManagerClientTypes.DeleteResources? = nil + ) + { + self.deleteResources = deleteResources + } + } + +} + extension DisassociateAssessmentReportEvidenceFolderInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case evidenceFolderId @@ -6012,7 +6083,7 @@ extension AuditManagerClientTypes.Evidence: Swift.Codable { } extension AuditManagerClientTypes { - /// A record that contains the information needed to demonstrate compliance with the requirements specified by a control. Examples of evidence include change activity triggered by a user, or a system configuration snapshot. + /// A record that contains the information needed to demonstrate compliance with the requirements specified by a control. Examples of evidence include change activity invoked by a user, or a system configuration snapshot. public struct Evidence: Swift.Equatable { /// Specifies whether the evidence is included in the assessment report. public var assessmentReportSelection: Swift.String? @@ -6164,11 +6235,11 @@ extension AuditManagerClientTypes.EvidenceFinderEnablement: Swift.Codable { extension AuditManagerClientTypes { /// The settings object that specifies whether evidence finder is enabled. This object also describes the related event data store, and the backfill status for populating the event data store with evidence data. public struct EvidenceFinderEnablement: Swift.Equatable { - /// The current status of the evidence data backfill process. The backfill starts after you enable evidence finder. During this task, Audit Manager populates an event data store with your past evidence data so that your evidence can be queried. + /// The current status of the evidence data backfill process. The backfill starts after you enable evidence finder. During this task, Audit Manager populates an event data store with your past two years’ worth of evidence data so that your evidence can be queried. /// /// * NOT_STARTED means that the backfill hasn’t started yet. /// - /// * IN_PROGRESS means that the backfill is in progress. This can take up to 24 hours to complete, depending on the amount of evidence data. + /// * IN_PROGRESS means that the backfill is in progress. This can take up to 7 days to complete, depending on the amount of evidence data. /// /// * COMPLETED means that the backfill is complete. All of your past evidence is now queryable. public var backfillStatus: AuditManagerClientTypes.EvidenceFinderBackfillStatus? @@ -6176,7 +6247,7 @@ extension AuditManagerClientTypes { /// /// * ENABLE_IN_PROGRESS means that you requested to enable evidence finder. An event data store is currently being created to support evidence finder queries. /// - /// * ENABLED means that an event data store was successfully created and evidence finder is enabled. We recommend that you wait 24 hours until the event data store is backfilled with your past evidence data. You can use evidence finder in the meantime, but not all data might be available until the backfill is complete. + /// * ENABLED means that an event data store was successfully created and evidence finder is enabled. We recommend that you wait 7 days until the event data store is backfilled with your past two years’ worth of evidence data. You can use evidence finder in the meantime, but not all data might be available until the backfill is complete. /// /// * DISABLE_IN_PROGRESS means that you requested to disable evidence finder, and your request is pending the deletion of the event data store. /// @@ -6428,7 +6499,7 @@ extension AuditManagerClientTypes { public var controlSets: [AuditManagerClientTypes.ControlSet]? /// The sources that Audit Manager collects evidence from for the control. public var controlSources: Swift.String? - /// Specifies when the framework was created. + /// The time when the framework was created. public var createdAt: ClientRuntime.Date? /// The IAM user or role that created the framework. public var createdBy: Swift.String? @@ -6436,7 +6507,7 @@ extension AuditManagerClientTypes { public var description: Swift.String? /// The unique identifier for the framework. public var id: Swift.String? - /// Specifies when the framework was most recently updated. + /// The time when the framework was most recently updated. public var lastUpdatedAt: ClientRuntime.Date? /// The IAM user or role that most recently updated the framework. public var lastUpdatedBy: Swift.String? @@ -8054,7 +8125,7 @@ extension GetEvidenceOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GetEvidenceOutputResponse: Swift.Equatable { - /// The evidence that the GetEvidenceResponse API returned. + /// The evidence that the GetEvidence API returned. public var evidence: AuditManagerClientTypes.Evidence? public init ( @@ -8471,7 +8542,7 @@ extension GetSettingsInput: ClientRuntime.URLPathProvider { } public struct GetSettingsInput: Swift.Equatable { - /// The list of SettingAttribute enum values. + /// The list of setting attribute enum values. /// This member is required. public var attribute: AuditManagerClientTypes.SettingAttribute? @@ -11357,6 +11428,7 @@ extension AuditManagerClientTypes { case all case defaultAssessmentReportsDestination case defaultProcessOwners + case deregistrationPolicy case evidenceFinderEnablement case isAwsOrgEnabled case snsTopic @@ -11367,6 +11439,7 @@ extension AuditManagerClientTypes { .all, .defaultAssessmentReportsDestination, .defaultProcessOwners, + .deregistrationPolicy, .evidenceFinderEnablement, .isAwsOrgEnabled, .snsTopic, @@ -11382,6 +11455,7 @@ extension AuditManagerClientTypes { case .all: return "ALL" case .defaultAssessmentReportsDestination: return "DEFAULT_ASSESSMENT_REPORTS_DESTINATION" case .defaultProcessOwners: return "DEFAULT_PROCESS_OWNERS" + case .deregistrationPolicy: return "DEREGISTRATION_POLICY" case .evidenceFinderEnablement: return "EVIDENCE_FINDER_ENABLEMENT" case .isAwsOrgEnabled: return "IS_AWS_ORG_ENABLED" case .snsTopic: return "SNS_TOPIC" @@ -11400,6 +11474,7 @@ extension AuditManagerClientTypes.Settings: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case defaultAssessmentReportsDestination case defaultProcessOwners + case deregistrationPolicy case evidenceFinderEnablement case isAwsOrgEnabled case kmsKey @@ -11417,6 +11492,9 @@ extension AuditManagerClientTypes.Settings: Swift.Codable { try defaultProcessOwnersContainer.encode(role0) } } + if let deregistrationPolicy = self.deregistrationPolicy { + try encodeContainer.encode(deregistrationPolicy, forKey: .deregistrationPolicy) + } if let evidenceFinderEnablement = self.evidenceFinderEnablement { try encodeContainer.encode(evidenceFinderEnablement, forKey: .evidenceFinderEnablement) } @@ -11454,6 +11532,8 @@ extension AuditManagerClientTypes.Settings: Swift.Codable { kmsKey = kmsKeyDecoded let evidenceFinderEnablementDecoded = try containerValues.decodeIfPresent(AuditManagerClientTypes.EvidenceFinderEnablement.self, forKey: .evidenceFinderEnablement) evidenceFinderEnablement = evidenceFinderEnablementDecoded + let deregistrationPolicyDecoded = try containerValues.decodeIfPresent(AuditManagerClientTypes.DeregistrationPolicy.self, forKey: .deregistrationPolicy) + deregistrationPolicy = deregistrationPolicyDecoded } } @@ -11464,6 +11544,8 @@ extension AuditManagerClientTypes { public var defaultAssessmentReportsDestination: AuditManagerClientTypes.AssessmentReportsDestination? /// The designated default audit owners. public var defaultProcessOwners: [AuditManagerClientTypes.Role]? + /// The deregistration policy for your Audit Manager data. You can use this attribute to determine how your data is handled when you deregister Audit Manager. + public var deregistrationPolicy: AuditManagerClientTypes.DeregistrationPolicy? /// The current evidence finder status and event data store details. public var evidenceFinderEnablement: AuditManagerClientTypes.EvidenceFinderEnablement? /// Specifies whether Organizations is enabled. @@ -11476,6 +11558,7 @@ extension AuditManagerClientTypes { public init ( defaultAssessmentReportsDestination: AuditManagerClientTypes.AssessmentReportsDestination? = nil, defaultProcessOwners: [AuditManagerClientTypes.Role]? = nil, + deregistrationPolicy: AuditManagerClientTypes.DeregistrationPolicy? = nil, evidenceFinderEnablement: AuditManagerClientTypes.EvidenceFinderEnablement? = nil, isAwsOrgEnabled: Swift.Bool? = nil, kmsKey: Swift.String? = nil, @@ -11484,6 +11567,7 @@ extension AuditManagerClientTypes { { self.defaultAssessmentReportsDestination = defaultAssessmentReportsDestination self.defaultProcessOwners = defaultProcessOwners + self.deregistrationPolicy = deregistrationPolicy self.evidenceFinderEnablement = evidenceFinderEnablement self.isAwsOrgEnabled = isAwsOrgEnabled self.kmsKey = kmsKey @@ -13069,7 +13153,7 @@ extension UpdateAssessmentOutputResponse: ClientRuntime.HttpResponseBinding { } public struct UpdateAssessmentOutputResponse: Swift.Equatable { - /// The response object for the UpdateAssessmentRequest API. This is the name of the updated assessment. + /// The response object for the UpdateAssessment API. This is the name of the updated assessment. public var assessment: AuditManagerClientTypes.Assessment? public init ( @@ -13425,6 +13509,7 @@ extension UpdateSettingsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case defaultAssessmentReportsDestination case defaultProcessOwners + case deregistrationPolicy case evidenceFinderEnabled case kmsKey case snsTopic @@ -13441,6 +13526,9 @@ extension UpdateSettingsInput: Swift.Encodable { try defaultProcessOwnersContainer.encode(role0) } } + if let deregistrationPolicy = self.deregistrationPolicy { + try encodeContainer.encode(deregistrationPolicy, forKey: .deregistrationPolicy) + } if let evidenceFinderEnabled = self.evidenceFinderEnabled { try encodeContainer.encode(evidenceFinderEnabled, forKey: .evidenceFinderEnabled) } @@ -13464,7 +13552,9 @@ public struct UpdateSettingsInput: Swift.Equatable { public var defaultAssessmentReportsDestination: AuditManagerClientTypes.AssessmentReportsDestination? /// A list of the default audit owners. public var defaultProcessOwners: [AuditManagerClientTypes.Role]? - /// Specifies whether the evidence finder feature is enabled. Change this attribute to enable or disable evidence finder. When you use this attribute to disable evidence finder, Audit Manager deletes the event data store that’s used to query your evidence data. As a result, you can’t re-enable evidence finder and use the feature again. Your only alternative is to [deregister](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html) and then [re-register](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html) Audit Manager. Disabling evidence finder is permanent, so consider this decision carefully before you proceed. If you’re using Audit Manager as a delegated administrator, keep in mind that this action applies to all member accounts in your organization. + /// The deregistration policy for your Audit Manager data. You can use this attribute to determine how your data is handled when you deregister Audit Manager. + public var deregistrationPolicy: AuditManagerClientTypes.DeregistrationPolicy? + /// Specifies whether the evidence finder feature is enabled. Change this attribute to enable or disable evidence finder. When you use this attribute to disable evidence finder, Audit Manager deletes the event data store that’s used to query your evidence data. As a result, you can’t re-enable evidence finder and use the feature again. Your only alternative is to [deregister](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html) and then [re-register](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html) Audit Manager. public var evidenceFinderEnabled: Swift.Bool? /// The KMS key details. public var kmsKey: Swift.String? @@ -13474,6 +13564,7 @@ public struct UpdateSettingsInput: Swift.Equatable { public init ( defaultAssessmentReportsDestination: AuditManagerClientTypes.AssessmentReportsDestination? = nil, defaultProcessOwners: [AuditManagerClientTypes.Role]? = nil, + deregistrationPolicy: AuditManagerClientTypes.DeregistrationPolicy? = nil, evidenceFinderEnabled: Swift.Bool? = nil, kmsKey: Swift.String? = nil, snsTopic: Swift.String? = nil @@ -13481,6 +13572,7 @@ public struct UpdateSettingsInput: Swift.Equatable { { self.defaultAssessmentReportsDestination = defaultAssessmentReportsDestination self.defaultProcessOwners = defaultProcessOwners + self.deregistrationPolicy = deregistrationPolicy self.evidenceFinderEnabled = evidenceFinderEnabled self.kmsKey = kmsKey self.snsTopic = snsTopic @@ -13493,12 +13585,14 @@ struct UpdateSettingsInputBody: Swift.Equatable { let defaultProcessOwners: [AuditManagerClientTypes.Role]? let kmsKey: Swift.String? let evidenceFinderEnabled: Swift.Bool? + let deregistrationPolicy: AuditManagerClientTypes.DeregistrationPolicy? } extension UpdateSettingsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case defaultAssessmentReportsDestination case defaultProcessOwners + case deregistrationPolicy case evidenceFinderEnabled case kmsKey case snsTopic @@ -13525,6 +13619,8 @@ extension UpdateSettingsInputBody: Swift.Decodable { kmsKey = kmsKeyDecoded let evidenceFinderEnabledDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .evidenceFinderEnabled) evidenceFinderEnabled = evidenceFinderEnabledDecoded + let deregistrationPolicyDecoded = try containerValues.decodeIfPresent(AuditManagerClientTypes.DeregistrationPolicy.self, forKey: .deregistrationPolicy) + deregistrationPolicy = deregistrationPolicyDecoded } } diff --git a/Sources/Services/AWSAutoScaling/Paginators.swift b/Sources/Services/AWSAutoScaling/Paginators.swift index c239cca6ef8..793ea52e9bc 100644 --- a/Sources/Services/AWSAutoScaling/Paginators.swift +++ b/Sources/Services/AWSAutoScaling/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAutoScalingGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAutoScalingGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAutoScalingGroupsOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeAutoScalingGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAutoScalingGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAutoScalingGroupsOutputResponse` public func describeAutoScalingGroupsPaginated(input: DescribeAutoScalingGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAutoScalingGroupsInput.nextToken, outputKey: \DescribeAutoScalingGroupsOutputResponse.nextToken, paginationFunction: self.describeAutoScalingGroups(input:)) } @@ -27,24 +26,23 @@ extension DescribeAutoScalingGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAutoScalingGroupsPaginated` -/// to access the nested member `[AutoScalingClientTypes.AutoScalingGroup]` -/// - Returns: `[AutoScalingClientTypes.AutoScalingGroup]` extension PaginatorSequence where Input == DescribeAutoScalingGroupsInput, Output == DescribeAutoScalingGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAutoScalingGroupsPaginated` + /// to access the nested member `[AutoScalingClientTypes.AutoScalingGroup]` + /// - Returns: `[AutoScalingClientTypes.AutoScalingGroup]` public func autoScalingGroups() async throws -> [AutoScalingClientTypes.AutoScalingGroup] { return try await self.asyncCompactMap { item in item.autoScalingGroups } } } - -/// Paginate over `[DescribeAutoScalingInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAutoScalingInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAutoScalingInstancesOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeAutoScalingInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAutoScalingInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAutoScalingInstancesOutputResponse` public func describeAutoScalingInstancesPaginated(input: DescribeAutoScalingInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAutoScalingInstancesInput.nextToken, outputKey: \DescribeAutoScalingInstancesOutputResponse.nextToken, paginationFunction: self.describeAutoScalingInstances(input:)) } @@ -59,24 +57,23 @@ extension DescribeAutoScalingInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAutoScalingInstancesPaginated` -/// to access the nested member `[AutoScalingClientTypes.AutoScalingInstanceDetails]` -/// - Returns: `[AutoScalingClientTypes.AutoScalingInstanceDetails]` extension PaginatorSequence where Input == DescribeAutoScalingInstancesInput, Output == DescribeAutoScalingInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAutoScalingInstancesPaginated` + /// to access the nested member `[AutoScalingClientTypes.AutoScalingInstanceDetails]` + /// - Returns: `[AutoScalingClientTypes.AutoScalingInstanceDetails]` public func autoScalingInstances() async throws -> [AutoScalingClientTypes.AutoScalingInstanceDetails] { return try await self.asyncCompactMap { item in item.autoScalingInstances } } } - -/// Paginate over `[DescribeLaunchConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLaunchConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchConfigurationsOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeLaunchConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLaunchConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchConfigurationsOutputResponse` public func describeLaunchConfigurationsPaginated(input: DescribeLaunchConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLaunchConfigurationsInput.nextToken, outputKey: \DescribeLaunchConfigurationsOutputResponse.nextToken, paginationFunction: self.describeLaunchConfigurations(input:)) } @@ -91,24 +88,23 @@ extension DescribeLaunchConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLaunchConfigurationsPaginated` -/// to access the nested member `[AutoScalingClientTypes.LaunchConfiguration]` -/// - Returns: `[AutoScalingClientTypes.LaunchConfiguration]` extension PaginatorSequence where Input == DescribeLaunchConfigurationsInput, Output == DescribeLaunchConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLaunchConfigurationsPaginated` + /// to access the nested member `[AutoScalingClientTypes.LaunchConfiguration]` + /// - Returns: `[AutoScalingClientTypes.LaunchConfiguration]` public func launchConfigurations() async throws -> [AutoScalingClientTypes.LaunchConfiguration] { return try await self.asyncCompactMap { item in item.launchConfigurations } } } - -/// Paginate over `[DescribeNotificationConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNotificationConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNotificationConfigurationsOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeNotificationConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNotificationConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNotificationConfigurationsOutputResponse` public func describeNotificationConfigurationsPaginated(input: DescribeNotificationConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNotificationConfigurationsInput.nextToken, outputKey: \DescribeNotificationConfigurationsOutputResponse.nextToken, paginationFunction: self.describeNotificationConfigurations(input:)) } @@ -123,24 +119,23 @@ extension DescribeNotificationConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNotificationConfigurationsPaginated` -/// to access the nested member `[AutoScalingClientTypes.NotificationConfiguration]` -/// - Returns: `[AutoScalingClientTypes.NotificationConfiguration]` extension PaginatorSequence where Input == DescribeNotificationConfigurationsInput, Output == DescribeNotificationConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNotificationConfigurationsPaginated` + /// to access the nested member `[AutoScalingClientTypes.NotificationConfiguration]` + /// - Returns: `[AutoScalingClientTypes.NotificationConfiguration]` public func notificationConfigurations() async throws -> [AutoScalingClientTypes.NotificationConfiguration] { return try await self.asyncCompactMap { item in item.notificationConfigurations } } } - -/// Paginate over `[DescribePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePoliciesOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePoliciesOutputResponse` public func describePoliciesPaginated(input: DescribePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePoliciesInput.nextToken, outputKey: \DescribePoliciesOutputResponse.nextToken, paginationFunction: self.describePolicies(input:)) } @@ -157,24 +152,23 @@ extension DescribePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePoliciesPaginated` -/// to access the nested member `[AutoScalingClientTypes.ScalingPolicy]` -/// - Returns: `[AutoScalingClientTypes.ScalingPolicy]` extension PaginatorSequence where Input == DescribePoliciesInput, Output == DescribePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePoliciesPaginated` + /// to access the nested member `[AutoScalingClientTypes.ScalingPolicy]` + /// - Returns: `[AutoScalingClientTypes.ScalingPolicy]` public func scalingPolicies() async throws -> [AutoScalingClientTypes.ScalingPolicy] { return try await self.asyncCompactMap { item in item.scalingPolicies } } } - -/// Paginate over `[DescribeScalingActivitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScalingActivitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingActivitiesOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeScalingActivitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScalingActivitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingActivitiesOutputResponse` public func describeScalingActivitiesPaginated(input: DescribeScalingActivitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScalingActivitiesInput.nextToken, outputKey: \DescribeScalingActivitiesOutputResponse.nextToken, paginationFunction: self.describeScalingActivities(input:)) } @@ -191,24 +185,23 @@ extension DescribeScalingActivitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScalingActivitiesPaginated` -/// to access the nested member `[AutoScalingClientTypes.Activity]` -/// - Returns: `[AutoScalingClientTypes.Activity]` extension PaginatorSequence where Input == DescribeScalingActivitiesInput, Output == DescribeScalingActivitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScalingActivitiesPaginated` + /// to access the nested member `[AutoScalingClientTypes.Activity]` + /// - Returns: `[AutoScalingClientTypes.Activity]` public func activities() async throws -> [AutoScalingClientTypes.Activity] { return try await self.asyncCompactMap { item in item.activities } } } - -/// Paginate over `[DescribeScheduledActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduledActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeScheduledActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduledActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` public func describeScheduledActionsPaginated(input: DescribeScheduledActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduledActionsInput.nextToken, outputKey: \DescribeScheduledActionsOutputResponse.nextToken, paginationFunction: self.describeScheduledActions(input:)) } @@ -226,24 +219,23 @@ extension DescribeScheduledActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` -/// to access the nested member `[AutoScalingClientTypes.ScheduledUpdateGroupAction]` -/// - Returns: `[AutoScalingClientTypes.ScheduledUpdateGroupAction]` extension PaginatorSequence where Input == DescribeScheduledActionsInput, Output == DescribeScheduledActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` + /// to access the nested member `[AutoScalingClientTypes.ScheduledUpdateGroupAction]` + /// - Returns: `[AutoScalingClientTypes.ScheduledUpdateGroupAction]` public func scheduledUpdateGroupActions() async throws -> [AutoScalingClientTypes.ScheduledUpdateGroupAction] { return try await self.asyncCompactMap { item in item.scheduledUpdateGroupActions } } } - -/// Paginate over `[DescribeTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` extension AutoScalingClient { + /// Paginate over `[DescribeTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` public func describeTagsPaginated(input: DescribeTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTagsInput.nextToken, outputKey: \DescribeTagsOutputResponse.nextToken, paginationFunction: self.describeTags(input:)) } @@ -258,10 +250,10 @@ extension DescribeTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` -/// to access the nested member `[AutoScalingClientTypes.TagDescription]` -/// - Returns: `[AutoScalingClientTypes.TagDescription]` extension PaginatorSequence where Input == DescribeTagsInput, Output == DescribeTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` + /// to access the nested member `[AutoScalingClientTypes.TagDescription]` + /// - Returns: `[AutoScalingClientTypes.TagDescription]` public func tags() async throws -> [AutoScalingClientTypes.TagDescription] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSBackup/Paginators.swift b/Sources/Services/AWSBackup/Paginators.swift index f771904bb89..4601ef93316 100644 --- a/Sources/Services/AWSBackup/Paginators.swift +++ b/Sources/Services/AWSBackup/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBackupJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupJobsOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupJobsOutputResponse` public func listBackupJobsPaginated(input: ListBackupJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupJobsInput.nextToken, outputKey: \ListBackupJobsOutputResponse.nextToken, paginationFunction: self.listBackupJobs(input:)) } @@ -35,24 +34,23 @@ extension ListBackupJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupJobsPaginated` -/// to access the nested member `[BackupClientTypes.BackupJob]` -/// - Returns: `[BackupClientTypes.BackupJob]` extension PaginatorSequence where Input == ListBackupJobsInput, Output == ListBackupJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupJobsPaginated` + /// to access the nested member `[BackupClientTypes.BackupJob]` + /// - Returns: `[BackupClientTypes.BackupJob]` public func backupJobs() async throws -> [BackupClientTypes.BackupJob] { return try await self.asyncCompactMap { item in item.backupJobs } } } - -/// Paginate over `[ListBackupPlansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupPlansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlansOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupPlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupPlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlansOutputResponse` public func listBackupPlansPaginated(input: ListBackupPlansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupPlansInput.nextToken, outputKey: \ListBackupPlansOutputResponse.nextToken, paginationFunction: self.listBackupPlans(input:)) } @@ -67,24 +65,23 @@ extension ListBackupPlansInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupPlansPaginated` -/// to access the nested member `[BackupClientTypes.BackupPlansListMember]` -/// - Returns: `[BackupClientTypes.BackupPlansListMember]` extension PaginatorSequence where Input == ListBackupPlansInput, Output == ListBackupPlansOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupPlansPaginated` + /// to access the nested member `[BackupClientTypes.BackupPlansListMember]` + /// - Returns: `[BackupClientTypes.BackupPlansListMember]` public func backupPlansList() async throws -> [BackupClientTypes.BackupPlansListMember] { return try await self.asyncCompactMap { item in item.backupPlansList } } } - -/// Paginate over `[ListBackupPlanTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupPlanTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlanTemplatesOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupPlanTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupPlanTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlanTemplatesOutputResponse` public func listBackupPlanTemplatesPaginated(input: ListBackupPlanTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupPlanTemplatesInput.nextToken, outputKey: \ListBackupPlanTemplatesOutputResponse.nextToken, paginationFunction: self.listBackupPlanTemplates(input:)) } @@ -98,24 +95,23 @@ extension ListBackupPlanTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupPlanTemplatesPaginated` -/// to access the nested member `[BackupClientTypes.BackupPlanTemplatesListMember]` -/// - Returns: `[BackupClientTypes.BackupPlanTemplatesListMember]` extension PaginatorSequence where Input == ListBackupPlanTemplatesInput, Output == ListBackupPlanTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupPlanTemplatesPaginated` + /// to access the nested member `[BackupClientTypes.BackupPlanTemplatesListMember]` + /// - Returns: `[BackupClientTypes.BackupPlanTemplatesListMember]` public func backupPlanTemplatesList() async throws -> [BackupClientTypes.BackupPlanTemplatesListMember] { return try await self.asyncCompactMap { item in item.backupPlanTemplatesList } } } - -/// Paginate over `[ListBackupPlanVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupPlanVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlanVersionsOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupPlanVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupPlanVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupPlanVersionsOutputResponse` public func listBackupPlanVersionsPaginated(input: ListBackupPlanVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupPlanVersionsInput.nextToken, outputKey: \ListBackupPlanVersionsOutputResponse.nextToken, paginationFunction: self.listBackupPlanVersions(input:)) } @@ -130,24 +126,23 @@ extension ListBackupPlanVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupPlanVersionsPaginated` -/// to access the nested member `[BackupClientTypes.BackupPlansListMember]` -/// - Returns: `[BackupClientTypes.BackupPlansListMember]` extension PaginatorSequence where Input == ListBackupPlanVersionsInput, Output == ListBackupPlanVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupPlanVersionsPaginated` + /// to access the nested member `[BackupClientTypes.BackupPlansListMember]` + /// - Returns: `[BackupClientTypes.BackupPlansListMember]` public func backupPlanVersionsList() async throws -> [BackupClientTypes.BackupPlansListMember] { return try await self.asyncCompactMap { item in item.backupPlanVersionsList } } } - -/// Paginate over `[ListBackupSelectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupSelectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupSelectionsOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupSelectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupSelectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupSelectionsOutputResponse` public func listBackupSelectionsPaginated(input: ListBackupSelectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupSelectionsInput.nextToken, outputKey: \ListBackupSelectionsOutputResponse.nextToken, paginationFunction: self.listBackupSelections(input:)) } @@ -162,24 +157,23 @@ extension ListBackupSelectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupSelectionsPaginated` -/// to access the nested member `[BackupClientTypes.BackupSelectionsListMember]` -/// - Returns: `[BackupClientTypes.BackupSelectionsListMember]` extension PaginatorSequence where Input == ListBackupSelectionsInput, Output == ListBackupSelectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupSelectionsPaginated` + /// to access the nested member `[BackupClientTypes.BackupSelectionsListMember]` + /// - Returns: `[BackupClientTypes.BackupSelectionsListMember]` public func backupSelectionsList() async throws -> [BackupClientTypes.BackupSelectionsListMember] { return try await self.asyncCompactMap { item in item.backupSelectionsList } } } - -/// Paginate over `[ListBackupVaultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBackupVaultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBackupVaultsOutputResponse` extension BackupClient { + /// Paginate over `[ListBackupVaultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBackupVaultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBackupVaultsOutputResponse` public func listBackupVaultsPaginated(input: ListBackupVaultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBackupVaultsInput.nextToken, outputKey: \ListBackupVaultsOutputResponse.nextToken, paginationFunction: self.listBackupVaults(input:)) } @@ -193,24 +187,23 @@ extension ListBackupVaultsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBackupVaultsPaginated` -/// to access the nested member `[BackupClientTypes.BackupVaultListMember]` -/// - Returns: `[BackupClientTypes.BackupVaultListMember]` extension PaginatorSequence where Input == ListBackupVaultsInput, Output == ListBackupVaultsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBackupVaultsPaginated` + /// to access the nested member `[BackupClientTypes.BackupVaultListMember]` + /// - Returns: `[BackupClientTypes.BackupVaultListMember]` public func backupVaultList() async throws -> [BackupClientTypes.BackupVaultListMember] { return try await self.asyncCompactMap { item in item.backupVaultList } } } - -/// Paginate over `[ListCopyJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCopyJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCopyJobsOutputResponse` extension BackupClient { + /// Paginate over `[ListCopyJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCopyJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCopyJobsOutputResponse` public func listCopyJobsPaginated(input: ListCopyJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCopyJobsInput.nextToken, outputKey: \ListCopyJobsOutputResponse.nextToken, paginationFunction: self.listCopyJobs(input:)) } @@ -234,24 +227,23 @@ extension ListCopyJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCopyJobsPaginated` -/// to access the nested member `[BackupClientTypes.CopyJob]` -/// - Returns: `[BackupClientTypes.CopyJob]` extension PaginatorSequence where Input == ListCopyJobsInput, Output == ListCopyJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCopyJobsPaginated` + /// to access the nested member `[BackupClientTypes.CopyJob]` + /// - Returns: `[BackupClientTypes.CopyJob]` public func copyJobs() async throws -> [BackupClientTypes.CopyJob] { return try await self.asyncCompactMap { item in item.copyJobs } } } - -/// Paginate over `[ListFrameworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFrameworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFrameworksOutputResponse` extension BackupClient { + /// Paginate over `[ListFrameworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFrameworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFrameworksOutputResponse` public func listFrameworksPaginated(input: ListFrameworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFrameworksInput.nextToken, outputKey: \ListFrameworksOutputResponse.nextToken, paginationFunction: self.listFrameworks(input:)) } @@ -264,16 +256,15 @@ extension ListFrameworksInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListLegalHoldsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLegalHoldsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLegalHoldsOutputResponse` extension BackupClient { + /// Paginate over `[ListLegalHoldsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLegalHoldsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLegalHoldsOutputResponse` public func listLegalHoldsPaginated(input: ListLegalHoldsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLegalHoldsInput.nextToken, outputKey: \ListLegalHoldsOutputResponse.nextToken, paginationFunction: self.listLegalHolds(input:)) } @@ -287,24 +278,23 @@ extension ListLegalHoldsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLegalHoldsPaginated` -/// to access the nested member `[BackupClientTypes.LegalHold]` -/// - Returns: `[BackupClientTypes.LegalHold]` extension PaginatorSequence where Input == ListLegalHoldsInput, Output == ListLegalHoldsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLegalHoldsPaginated` + /// to access the nested member `[BackupClientTypes.LegalHold]` + /// - Returns: `[BackupClientTypes.LegalHold]` public func legalHolds() async throws -> [BackupClientTypes.LegalHold] { return try await self.asyncCompactMap { item in item.legalHolds } } } - -/// Paginate over `[ListProtectedResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProtectedResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProtectedResourcesOutputResponse` extension BackupClient { + /// Paginate over `[ListProtectedResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProtectedResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProtectedResourcesOutputResponse` public func listProtectedResourcesPaginated(input: ListProtectedResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProtectedResourcesInput.nextToken, outputKey: \ListProtectedResourcesOutputResponse.nextToken, paginationFunction: self.listProtectedResources(input:)) } @@ -318,24 +308,23 @@ extension ListProtectedResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProtectedResourcesPaginated` -/// to access the nested member `[BackupClientTypes.ProtectedResource]` -/// - Returns: `[BackupClientTypes.ProtectedResource]` extension PaginatorSequence where Input == ListProtectedResourcesInput, Output == ListProtectedResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProtectedResourcesPaginated` + /// to access the nested member `[BackupClientTypes.ProtectedResource]` + /// - Returns: `[BackupClientTypes.ProtectedResource]` public func results() async throws -> [BackupClientTypes.ProtectedResource] { return try await self.asyncCompactMap { item in item.results } } } - -/// Paginate over `[ListRecoveryPointsByBackupVaultOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecoveryPointsByBackupVaultInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByBackupVaultOutputResponse` extension BackupClient { + /// Paginate over `[ListRecoveryPointsByBackupVaultOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecoveryPointsByBackupVaultInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByBackupVaultOutputResponse` public func listRecoveryPointsByBackupVaultPaginated(input: ListRecoveryPointsByBackupVaultInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecoveryPointsByBackupVaultInput.nextToken, outputKey: \ListRecoveryPointsByBackupVaultOutputResponse.nextToken, paginationFunction: self.listRecoveryPointsByBackupVault(input:)) } @@ -356,24 +345,23 @@ extension ListRecoveryPointsByBackupVaultInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByBackupVaultPaginated` -/// to access the nested member `[BackupClientTypes.RecoveryPointByBackupVault]` -/// - Returns: `[BackupClientTypes.RecoveryPointByBackupVault]` extension PaginatorSequence where Input == ListRecoveryPointsByBackupVaultInput, Output == ListRecoveryPointsByBackupVaultOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByBackupVaultPaginated` + /// to access the nested member `[BackupClientTypes.RecoveryPointByBackupVault]` + /// - Returns: `[BackupClientTypes.RecoveryPointByBackupVault]` public func recoveryPoints() async throws -> [BackupClientTypes.RecoveryPointByBackupVault] { return try await self.asyncCompactMap { item in item.recoveryPoints } } } - -/// Paginate over `[ListRecoveryPointsByLegalHoldOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecoveryPointsByLegalHoldInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByLegalHoldOutputResponse` extension BackupClient { + /// Paginate over `[ListRecoveryPointsByLegalHoldOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecoveryPointsByLegalHoldInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByLegalHoldOutputResponse` public func listRecoveryPointsByLegalHoldPaginated(input: ListRecoveryPointsByLegalHoldInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecoveryPointsByLegalHoldInput.nextToken, outputKey: \ListRecoveryPointsByLegalHoldOutputResponse.nextToken, paginationFunction: self.listRecoveryPointsByLegalHold(input:)) } @@ -388,24 +376,23 @@ extension ListRecoveryPointsByLegalHoldInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByLegalHoldPaginated` -/// to access the nested member `[BackupClientTypes.RecoveryPointMember]` -/// - Returns: `[BackupClientTypes.RecoveryPointMember]` extension PaginatorSequence where Input == ListRecoveryPointsByLegalHoldInput, Output == ListRecoveryPointsByLegalHoldOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByLegalHoldPaginated` + /// to access the nested member `[BackupClientTypes.RecoveryPointMember]` + /// - Returns: `[BackupClientTypes.RecoveryPointMember]` public func recoveryPoints() async throws -> [BackupClientTypes.RecoveryPointMember] { return try await self.asyncCompactMap { item in item.recoveryPoints } } } - -/// Paginate over `[ListRecoveryPointsByResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecoveryPointsByResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByResourceOutputResponse` extension BackupClient { + /// Paginate over `[ListRecoveryPointsByResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecoveryPointsByResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryPointsByResourceOutputResponse` public func listRecoveryPointsByResourcePaginated(input: ListRecoveryPointsByResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecoveryPointsByResourceInput.nextToken, outputKey: \ListRecoveryPointsByResourceOutputResponse.nextToken, paginationFunction: self.listRecoveryPointsByResource(input:)) } @@ -420,24 +407,23 @@ extension ListRecoveryPointsByResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByResourcePaginated` -/// to access the nested member `[BackupClientTypes.RecoveryPointByResource]` -/// - Returns: `[BackupClientTypes.RecoveryPointByResource]` extension PaginatorSequence where Input == ListRecoveryPointsByResourceInput, Output == ListRecoveryPointsByResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecoveryPointsByResourcePaginated` + /// to access the nested member `[BackupClientTypes.RecoveryPointByResource]` + /// - Returns: `[BackupClientTypes.RecoveryPointByResource]` public func recoveryPoints() async throws -> [BackupClientTypes.RecoveryPointByResource] { return try await self.asyncCompactMap { item in item.recoveryPoints } } } - -/// Paginate over `[ListReportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportJobsOutputResponse` extension BackupClient { + /// Paginate over `[ListReportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportJobsOutputResponse` public func listReportJobsPaginated(input: ListReportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportJobsInput.nextToken, outputKey: \ListReportJobsOutputResponse.nextToken, paginationFunction: self.listReportJobs(input:)) } @@ -454,16 +440,15 @@ extension ListReportJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListReportPlansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportPlansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportPlansOutputResponse` extension BackupClient { + /// Paginate over `[ListReportPlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportPlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportPlansOutputResponse` public func listReportPlansPaginated(input: ListReportPlansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportPlansInput.nextToken, outputKey: \ListReportPlansOutputResponse.nextToken, paginationFunction: self.listReportPlans(input:)) } @@ -476,16 +461,15 @@ extension ListReportPlansInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRestoreJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRestoreJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRestoreJobsOutputResponse` extension BackupClient { + /// Paginate over `[ListRestoreJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRestoreJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRestoreJobsOutputResponse` public func listRestoreJobsPaginated(input: ListRestoreJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRestoreJobsInput.nextToken, outputKey: \ListRestoreJobsOutputResponse.nextToken, paginationFunction: self.listRestoreJobs(input:)) } @@ -505,24 +489,23 @@ extension ListRestoreJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRestoreJobsPaginated` -/// to access the nested member `[BackupClientTypes.RestoreJobsListMember]` -/// - Returns: `[BackupClientTypes.RestoreJobsListMember]` extension PaginatorSequence where Input == ListRestoreJobsInput, Output == ListRestoreJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRestoreJobsPaginated` + /// to access the nested member `[BackupClientTypes.RestoreJobsListMember]` + /// - Returns: `[BackupClientTypes.RestoreJobsListMember]` public func restoreJobs() async throws -> [BackupClientTypes.RestoreJobsListMember] { return try await self.asyncCompactMap { item in item.restoreJobs } } } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension BackupClient { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } diff --git a/Sources/Services/AWSBackupStorage/Paginators.swift b/Sources/Services/AWSBackupStorage/Paginators.swift index 8ab603035d2..a66d02f553b 100644 --- a/Sources/Services/AWSBackupStorage/Paginators.swift +++ b/Sources/Services/AWSBackupStorage/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChunksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChunksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChunksOutputResponse` extension BackupStorageClient { + /// Paginate over `[ListChunksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChunksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChunksOutputResponse` public func listChunksPaginated(input: ListChunksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChunksInput.nextToken, outputKey: \ListChunksOutputResponse.nextToken, paginationFunction: self.listChunks(input:)) } @@ -26,16 +25,15 @@ extension ListChunksInput: ClientRuntime.PaginateToken { storageJobId: self.storageJobId )} } - -/// Paginate over `[ListObjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectsOutputResponse` extension BackupStorageClient { + /// Paginate over `[ListObjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectsOutputResponse` public func listObjectsPaginated(input: ListObjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectsInput.nextToken, outputKey: \ListObjectsOutputResponse.nextToken, paginationFunction: self.listObjects(input:)) } diff --git a/Sources/Services/AWSBatch/Paginators.swift b/Sources/Services/AWSBatch/Paginators.swift index 823803618a8..22bbe5020f6 100644 --- a/Sources/Services/AWSBatch/Paginators.swift +++ b/Sources/Services/AWSBatch/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeComputeEnvironmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeComputeEnvironmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeComputeEnvironmentsOutputResponse` extension BatchClient { + /// Paginate over `[DescribeComputeEnvironmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeComputeEnvironmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeComputeEnvironmentsOutputResponse` public func describeComputeEnvironmentsPaginated(input: DescribeComputeEnvironmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeComputeEnvironmentsInput.nextToken, outputKey: \DescribeComputeEnvironmentsOutputResponse.nextToken, paginationFunction: self.describeComputeEnvironments(input:)) } @@ -26,24 +25,23 @@ extension DescribeComputeEnvironmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeComputeEnvironmentsPaginated` -/// to access the nested member `[BatchClientTypes.ComputeEnvironmentDetail]` -/// - Returns: `[BatchClientTypes.ComputeEnvironmentDetail]` extension PaginatorSequence where Input == DescribeComputeEnvironmentsInput, Output == DescribeComputeEnvironmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeComputeEnvironmentsPaginated` + /// to access the nested member `[BatchClientTypes.ComputeEnvironmentDetail]` + /// - Returns: `[BatchClientTypes.ComputeEnvironmentDetail]` public func computeEnvironments() async throws -> [BatchClientTypes.ComputeEnvironmentDetail] { return try await self.asyncCompactMap { item in item.computeEnvironments } } } - -/// Paginate over `[DescribeJobDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeJobDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeJobDefinitionsOutputResponse` extension BatchClient { + /// Paginate over `[DescribeJobDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeJobDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeJobDefinitionsOutputResponse` public func describeJobDefinitionsPaginated(input: DescribeJobDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeJobDefinitionsInput.nextToken, outputKey: \DescribeJobDefinitionsOutputResponse.nextToken, paginationFunction: self.describeJobDefinitions(input:)) } @@ -60,24 +58,23 @@ extension DescribeJobDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeJobDefinitionsPaginated` -/// to access the nested member `[BatchClientTypes.JobDefinition]` -/// - Returns: `[BatchClientTypes.JobDefinition]` extension PaginatorSequence where Input == DescribeJobDefinitionsInput, Output == DescribeJobDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeJobDefinitionsPaginated` + /// to access the nested member `[BatchClientTypes.JobDefinition]` + /// - Returns: `[BatchClientTypes.JobDefinition]` public func jobDefinitions() async throws -> [BatchClientTypes.JobDefinition] { return try await self.asyncCompactMap { item in item.jobDefinitions } } } - -/// Paginate over `[DescribeJobQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeJobQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeJobQueuesOutputResponse` extension BatchClient { + /// Paginate over `[DescribeJobQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeJobQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeJobQueuesOutputResponse` public func describeJobQueuesPaginated(input: DescribeJobQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeJobQueuesInput.nextToken, outputKey: \DescribeJobQueuesOutputResponse.nextToken, paginationFunction: self.describeJobQueues(input:)) } @@ -92,24 +89,23 @@ extension DescribeJobQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeJobQueuesPaginated` -/// to access the nested member `[BatchClientTypes.JobQueueDetail]` -/// - Returns: `[BatchClientTypes.JobQueueDetail]` extension PaginatorSequence where Input == DescribeJobQueuesInput, Output == DescribeJobQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeJobQueuesPaginated` + /// to access the nested member `[BatchClientTypes.JobQueueDetail]` + /// - Returns: `[BatchClientTypes.JobQueueDetail]` public func jobQueues() async throws -> [BatchClientTypes.JobQueueDetail] { return try await self.asyncCompactMap { item in item.jobQueues } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension BatchClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -128,24 +124,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[BatchClientTypes.JobSummary]` -/// - Returns: `[BatchClientTypes.JobSummary]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[BatchClientTypes.JobSummary]` + /// - Returns: `[BatchClientTypes.JobSummary]` public func jobSummaryList() async throws -> [BatchClientTypes.JobSummary] { return try await self.asyncCompactMap { item in item.jobSummaryList } } } - -/// Paginate over `[ListSchedulingPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchedulingPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchedulingPoliciesOutputResponse` extension BatchClient { + /// Paginate over `[ListSchedulingPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchedulingPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchedulingPoliciesOutputResponse` public func listSchedulingPoliciesPaginated(input: ListSchedulingPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchedulingPoliciesInput.nextToken, outputKey: \ListSchedulingPoliciesOutputResponse.nextToken, paginationFunction: self.listSchedulingPolicies(input:)) } @@ -159,10 +154,10 @@ extension ListSchedulingPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchedulingPoliciesPaginated` -/// to access the nested member `[BatchClientTypes.SchedulingPolicyListingDetail]` -/// - Returns: `[BatchClientTypes.SchedulingPolicyListingDetail]` extension PaginatorSequence where Input == ListSchedulingPoliciesInput, Output == ListSchedulingPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchedulingPoliciesPaginated` + /// to access the nested member `[BatchClientTypes.SchedulingPolicyListingDetail]` + /// - Returns: `[BatchClientTypes.SchedulingPolicyListingDetail]` public func schedulingPolicies() async throws -> [BatchClientTypes.SchedulingPolicyListingDetail] { return try await self.asyncCompactMap { item in item.schedulingPolicies } } diff --git a/Sources/Services/AWSBillingconductor/EndpointResolver.swift b/Sources/Services/AWSBillingconductor/EndpointResolver.swift index ff1a715216a..04ea89e00ef 100644 --- a/Sources/Services/AWSBillingconductor/EndpointResolver.swift +++ b/Sources/Services/AWSBillingconductor/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"billingconductor\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"billingconductor\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"billingconductor\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"billingconductor\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://billingconductor.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"billingconductor\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.api.aws\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.api.aws\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"billingconductor\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://billingconductor.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"billingconductor\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://billingconductor.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSBillingconductor/Paginators.swift b/Sources/Services/AWSBillingconductor/Paginators.swift index ea76efd7ae7..565cabf4ebd 100644 --- a/Sources/Services/AWSBillingconductor/Paginators.swift +++ b/Sources/Services/AWSBillingconductor/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssociationsOutputResponse` extension BillingconductorClient { + /// Paginate over `[ListAccountAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssociationsOutputResponse` public func listAccountAssociationsPaginated(input: ListAccountAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountAssociationsInput.nextToken, outputKey: \ListAccountAssociationsOutputResponse.nextToken, paginationFunction: self.listAccountAssociations(input:)) } @@ -26,24 +25,23 @@ extension ListAccountAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountAssociationsPaginated` -/// to access the nested member `[BillingconductorClientTypes.AccountAssociationsListElement]` -/// - Returns: `[BillingconductorClientTypes.AccountAssociationsListElement]` extension PaginatorSequence where Input == ListAccountAssociationsInput, Output == ListAccountAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountAssociationsPaginated` + /// to access the nested member `[BillingconductorClientTypes.AccountAssociationsListElement]` + /// - Returns: `[BillingconductorClientTypes.AccountAssociationsListElement]` public func linkedAccounts() async throws -> [BillingconductorClientTypes.AccountAssociationsListElement] { return try await self.asyncCompactMap { item in item.linkedAccounts } } } - -/// Paginate over `[ListBillingGroupCostReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBillingGroupCostReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBillingGroupCostReportsOutputResponse` extension BillingconductorClient { + /// Paginate over `[ListBillingGroupCostReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBillingGroupCostReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBillingGroupCostReportsOutputResponse` public func listBillingGroupCostReportsPaginated(input: ListBillingGroupCostReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBillingGroupCostReportsInput.nextToken, outputKey: \ListBillingGroupCostReportsOutputResponse.nextToken, paginationFunction: self.listBillingGroupCostReports(input:)) } @@ -59,10 +57,10 @@ extension ListBillingGroupCostReportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBillingGroupCostReportsPaginated` -/// to access the nested member `[BillingconductorClientTypes.BillingGroupCostReportElement]` -/// - Returns: `[BillingconductorClientTypes.BillingGroupCostReportElement]` extension PaginatorSequence where Input == ListBillingGroupCostReportsInput, Output == ListBillingGroupCostReportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBillingGroupCostReportsPaginated` + /// to access the nested member `[BillingconductorClientTypes.BillingGroupCostReportElement]` + /// - Returns: `[BillingconductorClientTypes.BillingGroupCostReportElement]` public func billingGroupCostReports() async throws -> [BillingconductorClientTypes.BillingGroupCostReportElement] { return try await self.asyncCompactMap { item in item.billingGroupCostReports } } diff --git a/Sources/Services/AWSBillingconductor/models/Models.swift b/Sources/Services/AWSBillingconductor/models/Models.swift index 1a5fc02226e..798cb2f1831 100644 --- a/Sources/Services/AWSBillingconductor/models/Models.swift +++ b/Sources/Services/AWSBillingconductor/models/Models.swift @@ -2052,7 +2052,7 @@ extension CreatePricingPlanOutputResponseBody: Swift.Decodable { extension CreatePricingRuleInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreatePricingRuleInput(billingEntity: \(Swift.String(describing: billingEntity)), clientToken: \(Swift.String(describing: clientToken)), modifierPercentage: \(Swift.String(describing: modifierPercentage)), scope: \(Swift.String(describing: scope)), service: \(Swift.String(describing: service)), tags: \(Swift.String(describing: tags)), tiering: \(Swift.String(describing: tiering)), type: \(Swift.String(describing: type)), description: \"CONTENT_REDACTED\", name: \"CONTENT_REDACTED\")"} + "CreatePricingRuleInput(billingEntity: \(Swift.String(describing: billingEntity)), clientToken: \(Swift.String(describing: clientToken)), modifierPercentage: \(Swift.String(describing: modifierPercentage)), operation: \(Swift.String(describing: operation)), scope: \(Swift.String(describing: scope)), service: \(Swift.String(describing: service)), tags: \(Swift.String(describing: tags)), tiering: \(Swift.String(describing: tiering)), type: \(Swift.String(describing: type)), usageType: \(Swift.String(describing: usageType)), description: \"CONTENT_REDACTED\", name: \"CONTENT_REDACTED\")"} } extension CreatePricingRuleInput: Swift.Encodable { @@ -2061,11 +2061,13 @@ extension CreatePricingRuleInput: Swift.Encodable { case description = "Description" case modifierPercentage = "ModifierPercentage" case name = "Name" + case operation = "Operation" case scope = "Scope" case service = "Service" case tags = "Tags" case tiering = "Tiering" case type = "Type" + case usageType = "UsageType" } public func encode(to encoder: Swift.Encoder) throws { @@ -2082,6 +2084,9 @@ extension CreatePricingRuleInput: Swift.Encodable { if let name = self.name { try encodeContainer.encode(name, forKey: .name) } + if let operation = self.operation { + try encodeContainer.encode(operation, forKey: .operation) + } if let scope = self.scope { try encodeContainer.encode(scope.rawValue, forKey: .scope) } @@ -2100,6 +2105,9 @@ extension CreatePricingRuleInput: Swift.Encodable { if let type = self.type { try encodeContainer.encode(type.rawValue, forKey: .type) } + if let usageType = self.usageType { + try encodeContainer.encode(usageType, forKey: .usageType) + } } } @@ -2131,10 +2139,12 @@ public struct CreatePricingRuleInput: Swift.Equatable { /// The pricing rule name. The names must be unique to each pricing rule. /// This member is required. public var name: Swift.String? + /// Operation is the specific Amazon Web Services action covered by this line item. This describes the specific usage of the line item. If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance. + public var operation: Swift.String? /// The scope of pricing rule that indicates if it's globally applicable, or it's service-specific. /// This member is required. public var scope: BillingconductorClientTypes.PricingRuleScope? - /// If the Scope attribute is set to SERVICE, the attribute indicates which service the PricingRule is applicable for. + /// If the Scope attribute is set to SERVICE or SKU, the attribute indicates which service the PricingRule is applicable for. public var service: Swift.String? /// A map that contains tag keys and tag values that are attached to a pricing rule. public var tags: [Swift.String:Swift.String]? @@ -2143,6 +2153,8 @@ public struct CreatePricingRuleInput: Swift.Equatable { /// The type of pricing rule. /// This member is required. public var type: BillingconductorClientTypes.PricingRuleType? + /// Usage type is the unit that each service uses to measure the usage of a specific type of resource. If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region. + public var usageType: Swift.String? public init ( billingEntity: Swift.String? = nil, @@ -2150,11 +2162,13 @@ public struct CreatePricingRuleInput: Swift.Equatable { description: Swift.String? = nil, modifierPercentage: Swift.Double? = nil, name: Swift.String? = nil, + operation: Swift.String? = nil, scope: BillingconductorClientTypes.PricingRuleScope? = nil, service: Swift.String? = nil, tags: [Swift.String:Swift.String]? = nil, tiering: BillingconductorClientTypes.CreateTieringInput? = nil, - type: BillingconductorClientTypes.PricingRuleType? = nil + type: BillingconductorClientTypes.PricingRuleType? = nil, + usageType: Swift.String? = nil ) { self.billingEntity = billingEntity @@ -2162,11 +2176,13 @@ public struct CreatePricingRuleInput: Swift.Equatable { self.description = description self.modifierPercentage = modifierPercentage self.name = name + self.operation = operation self.scope = scope self.service = service self.tags = tags self.tiering = tiering self.type = type + self.usageType = usageType } } @@ -2180,6 +2196,8 @@ struct CreatePricingRuleInputBody: Swift.Equatable { let tags: [Swift.String:Swift.String]? let billingEntity: Swift.String? let tiering: BillingconductorClientTypes.CreateTieringInput? + let usageType: Swift.String? + let operation: Swift.String? } extension CreatePricingRuleInputBody: Swift.Decodable { @@ -2188,11 +2206,13 @@ extension CreatePricingRuleInputBody: Swift.Decodable { case description = "Description" case modifierPercentage = "ModifierPercentage" case name = "Name" + case operation = "Operation" case scope = "Scope" case service = "Service" case tags = "Tags" case tiering = "Tiering" case type = "Type" + case usageType = "UsageType" } public init (from decoder: Swift.Decoder) throws { @@ -2224,6 +2244,10 @@ extension CreatePricingRuleInputBody: Swift.Decodable { billingEntity = billingEntityDecoded let tieringDecoded = try containerValues.decodeIfPresent(BillingconductorClientTypes.CreateTieringInput.self, forKey: .tiering) tiering = tieringDecoded + let usageTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .usageType) + usageType = usageTypeDecoded + let operationDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .operation) + operation = operationDecoded } } @@ -8130,7 +8154,7 @@ public enum UpdatePricingRuleOutputError: Swift.Error, Swift.Equatable { extension UpdatePricingRuleOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdatePricingRuleOutputResponse(arn: \(Swift.String(describing: arn)), associatedPricingPlanCount: \(Swift.String(describing: associatedPricingPlanCount)), billingEntity: \(Swift.String(describing: billingEntity)), lastModifiedTime: \(Swift.String(describing: lastModifiedTime)), modifierPercentage: \(Swift.String(describing: modifierPercentage)), scope: \(Swift.String(describing: scope)), service: \(Swift.String(describing: service)), tiering: \(Swift.String(describing: tiering)), type: \(Swift.String(describing: type)), description: \"CONTENT_REDACTED\", name: \"CONTENT_REDACTED\")"} + "UpdatePricingRuleOutputResponse(arn: \(Swift.String(describing: arn)), associatedPricingPlanCount: \(Swift.String(describing: associatedPricingPlanCount)), billingEntity: \(Swift.String(describing: billingEntity)), lastModifiedTime: \(Swift.String(describing: lastModifiedTime)), modifierPercentage: \(Swift.String(describing: modifierPercentage)), operation: \(Swift.String(describing: operation)), scope: \(Swift.String(describing: scope)), service: \(Swift.String(describing: service)), tiering: \(Swift.String(describing: tiering)), type: \(Swift.String(describing: type)), usageType: \(Swift.String(describing: usageType)), description: \"CONTENT_REDACTED\", name: \"CONTENT_REDACTED\")"} } extension UpdatePricingRuleOutputResponse: ClientRuntime.HttpResponseBinding { @@ -8146,10 +8170,12 @@ extension UpdatePricingRuleOutputResponse: ClientRuntime.HttpResponseBinding { self.lastModifiedTime = output.lastModifiedTime self.modifierPercentage = output.modifierPercentage self.name = output.name + self.operation = output.operation self.scope = output.scope self.service = output.service self.tiering = output.tiering self.type = output.type + self.usageType = output.usageType } else { self.arn = nil self.associatedPricingPlanCount = 0 @@ -8158,10 +8184,12 @@ extension UpdatePricingRuleOutputResponse: ClientRuntime.HttpResponseBinding { self.lastModifiedTime = 0 self.modifierPercentage = nil self.name = nil + self.operation = nil self.scope = nil self.service = nil self.tiering = nil self.type = nil + self.usageType = nil } } } @@ -8181,6 +8209,8 @@ public struct UpdatePricingRuleOutputResponse: Swift.Equatable { public var modifierPercentage: Swift.Double? /// The new name of the pricing rule. The name must be unique to each pricing rule. public var name: Swift.String? + /// Operation refers to the specific Amazon Web Services covered by this line item. This describes the specific usage of the line item. If the Scope attribute is set to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances:0202 indicates the operation of running an Amazon EC2 instance. + public var operation: Swift.String? /// The scope of pricing rule that indicates if it's globally applicable, or it's service-specific. public var scope: BillingconductorClientTypes.PricingRuleScope? /// If the Scope attribute is set to SERVICE, the attribute indicates which service the PricingRule is applicable for. @@ -8189,6 +8219,8 @@ public struct UpdatePricingRuleOutputResponse: Swift.Equatable { public var tiering: BillingconductorClientTypes.UpdateTieringInput? /// The new pricing rule type. public var type: BillingconductorClientTypes.PricingRuleType? + /// Usage type is the unit that each service uses to measure the usage of a specific type of resource. If the Scope attribute is set to SKU, this attribute indicates which usage type the PricingRule is modifying. For example, USW2-BoxUsage:m2.2xlarge describes an M2 High Memory Double Extra Large instance in the US West (Oregon) Region. + public var usageType: Swift.String? public init ( arn: Swift.String? = nil, @@ -8198,10 +8230,12 @@ public struct UpdatePricingRuleOutputResponse: Swift.Equatable { lastModifiedTime: Swift.Int = 0, modifierPercentage: Swift.Double? = nil, name: Swift.String? = nil, + operation: Swift.String? = nil, scope: BillingconductorClientTypes.PricingRuleScope? = nil, service: Swift.String? = nil, tiering: BillingconductorClientTypes.UpdateTieringInput? = nil, - type: BillingconductorClientTypes.PricingRuleType? = nil + type: BillingconductorClientTypes.PricingRuleType? = nil, + usageType: Swift.String? = nil ) { self.arn = arn @@ -8211,10 +8245,12 @@ public struct UpdatePricingRuleOutputResponse: Swift.Equatable { self.lastModifiedTime = lastModifiedTime self.modifierPercentage = modifierPercentage self.name = name + self.operation = operation self.scope = scope self.service = service self.tiering = tiering self.type = type + self.usageType = usageType } } @@ -8230,6 +8266,8 @@ struct UpdatePricingRuleOutputResponseBody: Swift.Equatable { let lastModifiedTime: Swift.Int let billingEntity: Swift.String? let tiering: BillingconductorClientTypes.UpdateTieringInput? + let usageType: Swift.String? + let operation: Swift.String? } extension UpdatePricingRuleOutputResponseBody: Swift.Decodable { @@ -8241,10 +8279,12 @@ extension UpdatePricingRuleOutputResponseBody: Swift.Decodable { case lastModifiedTime = "LastModifiedTime" case modifierPercentage = "ModifierPercentage" case name = "Name" + case operation = "Operation" case scope = "Scope" case service = "Service" case tiering = "Tiering" case type = "Type" + case usageType = "UsageType" } public init (from decoder: Swift.Decoder) throws { @@ -8271,6 +8311,10 @@ extension UpdatePricingRuleOutputResponseBody: Swift.Decodable { billingEntity = billingEntityDecoded let tieringDecoded = try containerValues.decodeIfPresent(BillingconductorClientTypes.UpdateTieringInput.self, forKey: .tiering) tiering = tieringDecoded + let usageTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .usageType) + usageType = usageTypeDecoded + let operationDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .operation) + operation = operationDecoded } } diff --git a/Sources/Services/AWSBudgets/EndpointResolver.swift b/Sources/Services/AWSBudgets/EndpointResolver.swift index 2366cfa392c..e4da68f2e52 100644 --- a/Sources/Services/AWSBudgets/EndpointResolver.swift +++ b/Sources/Services/AWSBudgets/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"budgets\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://budgets.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"budgets\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://budgets.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSBudgets/Paginators.swift b/Sources/Services/AWSBudgets/Paginators.swift index ed1a4d20abf..14dba808cf8 100644 --- a/Sources/Services/AWSBudgets/Paginators.swift +++ b/Sources/Services/AWSBudgets/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBudgetActionHistoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetActionHistoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionHistoriesOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetActionHistoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetActionHistoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionHistoriesOutputResponse` public func describeBudgetActionHistoriesPaginated(input: DescribeBudgetActionHistoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetActionHistoriesInput.nextToken, outputKey: \DescribeBudgetActionHistoriesOutputResponse.nextToken, paginationFunction: self.describeBudgetActionHistories(input:)) } @@ -29,24 +28,23 @@ extension DescribeBudgetActionHistoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionHistoriesPaginated` -/// to access the nested member `[BudgetsClientTypes.ActionHistory]` -/// - Returns: `[BudgetsClientTypes.ActionHistory]` extension PaginatorSequence where Input == DescribeBudgetActionHistoriesInput, Output == DescribeBudgetActionHistoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionHistoriesPaginated` + /// to access the nested member `[BudgetsClientTypes.ActionHistory]` + /// - Returns: `[BudgetsClientTypes.ActionHistory]` public func actionHistories() async throws -> [BudgetsClientTypes.ActionHistory] { return try await self.asyncCompactMap { item in item.actionHistories } } } - -/// Paginate over `[DescribeBudgetActionsForAccountOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetActionsForAccountInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionsForAccountOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetActionsForAccountOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetActionsForAccountInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionsForAccountOutputResponse` public func describeBudgetActionsForAccountPaginated(input: DescribeBudgetActionsForAccountInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetActionsForAccountInput.nextToken, outputKey: \DescribeBudgetActionsForAccountOutputResponse.nextToken, paginationFunction: self.describeBudgetActionsForAccount(input:)) } @@ -61,24 +59,23 @@ extension DescribeBudgetActionsForAccountInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionsForAccountPaginated` -/// to access the nested member `[BudgetsClientTypes.Action]` -/// - Returns: `[BudgetsClientTypes.Action]` extension PaginatorSequence where Input == DescribeBudgetActionsForAccountInput, Output == DescribeBudgetActionsForAccountOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionsForAccountPaginated` + /// to access the nested member `[BudgetsClientTypes.Action]` + /// - Returns: `[BudgetsClientTypes.Action]` public func actions() async throws -> [BudgetsClientTypes.Action] { return try await self.asyncCompactMap { item in item.actions } } } - -/// Paginate over `[DescribeBudgetActionsForBudgetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetActionsForBudgetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionsForBudgetOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetActionsForBudgetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetActionsForBudgetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetActionsForBudgetOutputResponse` public func describeBudgetActionsForBudgetPaginated(input: DescribeBudgetActionsForBudgetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetActionsForBudgetInput.nextToken, outputKey: \DescribeBudgetActionsForBudgetOutputResponse.nextToken, paginationFunction: self.describeBudgetActionsForBudget(input:)) } @@ -94,24 +91,23 @@ extension DescribeBudgetActionsForBudgetInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionsForBudgetPaginated` -/// to access the nested member `[BudgetsClientTypes.Action]` -/// - Returns: `[BudgetsClientTypes.Action]` extension PaginatorSequence where Input == DescribeBudgetActionsForBudgetInput, Output == DescribeBudgetActionsForBudgetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBudgetActionsForBudgetPaginated` + /// to access the nested member `[BudgetsClientTypes.Action]` + /// - Returns: `[BudgetsClientTypes.Action]` public func actions() async throws -> [BudgetsClientTypes.Action] { return try await self.asyncCompactMap { item in item.actions } } } - -/// Paginate over `[DescribeBudgetNotificationsForAccountOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetNotificationsForAccountInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetNotificationsForAccountOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetNotificationsForAccountOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetNotificationsForAccountInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetNotificationsForAccountOutputResponse` public func describeBudgetNotificationsForAccountPaginated(input: DescribeBudgetNotificationsForAccountInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetNotificationsForAccountInput.nextToken, outputKey: \DescribeBudgetNotificationsForAccountOutputResponse.nextToken, paginationFunction: self.describeBudgetNotificationsForAccount(input:)) } @@ -126,24 +122,23 @@ extension DescribeBudgetNotificationsForAccountInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBudgetNotificationsForAccountPaginated` -/// to access the nested member `[BudgetsClientTypes.BudgetNotificationsForAccount]` -/// - Returns: `[BudgetsClientTypes.BudgetNotificationsForAccount]` extension PaginatorSequence where Input == DescribeBudgetNotificationsForAccountInput, Output == DescribeBudgetNotificationsForAccountOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBudgetNotificationsForAccountPaginated` + /// to access the nested member `[BudgetsClientTypes.BudgetNotificationsForAccount]` + /// - Returns: `[BudgetsClientTypes.BudgetNotificationsForAccount]` public func budgetNotificationsForAccount() async throws -> [BudgetsClientTypes.BudgetNotificationsForAccount] { return try await self.asyncCompactMap { item in item.budgetNotificationsForAccount } } } - -/// Paginate over `[DescribeBudgetPerformanceHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetPerformanceHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetPerformanceHistoryOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetPerformanceHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetPerformanceHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetPerformanceHistoryOutputResponse` public func describeBudgetPerformanceHistoryPaginated(input: DescribeBudgetPerformanceHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetPerformanceHistoryInput.nextToken, outputKey: \DescribeBudgetPerformanceHistoryOutputResponse.nextToken, paginationFunction: self.describeBudgetPerformanceHistory(input:)) } @@ -159,16 +154,15 @@ extension DescribeBudgetPerformanceHistoryInput: ClientRuntime.PaginateToken { timePeriod: self.timePeriod )} } - -/// Paginate over `[DescribeBudgetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBudgetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetsOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeBudgetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBudgetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBudgetsOutputResponse` public func describeBudgetsPaginated(input: DescribeBudgetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBudgetsInput.nextToken, outputKey: \DescribeBudgetsOutputResponse.nextToken, paginationFunction: self.describeBudgets(input:)) } @@ -183,24 +177,23 @@ extension DescribeBudgetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBudgetsPaginated` -/// to access the nested member `[BudgetsClientTypes.Budget]` -/// - Returns: `[BudgetsClientTypes.Budget]` extension PaginatorSequence where Input == DescribeBudgetsInput, Output == DescribeBudgetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBudgetsPaginated` + /// to access the nested member `[BudgetsClientTypes.Budget]` + /// - Returns: `[BudgetsClientTypes.Budget]` public func budgets() async throws -> [BudgetsClientTypes.Budget] { return try await self.asyncCompactMap { item in item.budgets } } } - -/// Paginate over `[DescribeNotificationsForBudgetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNotificationsForBudgetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNotificationsForBudgetOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeNotificationsForBudgetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNotificationsForBudgetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNotificationsForBudgetOutputResponse` public func describeNotificationsForBudgetPaginated(input: DescribeNotificationsForBudgetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNotificationsForBudgetInput.nextToken, outputKey: \DescribeNotificationsForBudgetOutputResponse.nextToken, paginationFunction: self.describeNotificationsForBudget(input:)) } @@ -216,24 +209,23 @@ extension DescribeNotificationsForBudgetInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNotificationsForBudgetPaginated` -/// to access the nested member `[BudgetsClientTypes.Notification]` -/// - Returns: `[BudgetsClientTypes.Notification]` extension PaginatorSequence where Input == DescribeNotificationsForBudgetInput, Output == DescribeNotificationsForBudgetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNotificationsForBudgetPaginated` + /// to access the nested member `[BudgetsClientTypes.Notification]` + /// - Returns: `[BudgetsClientTypes.Notification]` public func notifications() async throws -> [BudgetsClientTypes.Notification] { return try await self.asyncCompactMap { item in item.notifications } } } - -/// Paginate over `[DescribeSubscribersForNotificationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSubscribersForNotificationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSubscribersForNotificationOutputResponse` extension BudgetsClient { + /// Paginate over `[DescribeSubscribersForNotificationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSubscribersForNotificationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSubscribersForNotificationOutputResponse` public func describeSubscribersForNotificationPaginated(input: DescribeSubscribersForNotificationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSubscribersForNotificationInput.nextToken, outputKey: \DescribeSubscribersForNotificationOutputResponse.nextToken, paginationFunction: self.describeSubscribersForNotification(input:)) } @@ -250,10 +242,10 @@ extension DescribeSubscribersForNotificationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSubscribersForNotificationPaginated` -/// to access the nested member `[BudgetsClientTypes.Subscriber]` -/// - Returns: `[BudgetsClientTypes.Subscriber]` extension PaginatorSequence where Input == DescribeSubscribersForNotificationInput, Output == DescribeSubscribersForNotificationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSubscribersForNotificationPaginated` + /// to access the nested member `[BudgetsClientTypes.Subscriber]` + /// - Returns: `[BudgetsClientTypes.Subscriber]` public func subscribers() async throws -> [BudgetsClientTypes.Subscriber] { return try await self.asyncCompactMap { item in item.subscribers } } diff --git a/Sources/Services/AWSChime/EndpointResolver.swift b/Sources/Services/AWSChime/EndpointResolver.swift index 96a8e5f7aa1..9c238246604 100644 --- a/Sources/Services/AWSChime/EndpointResolver.swift +++ b/Sources/Services/AWSChime/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"chime\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"chime\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"chime\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"chime\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://chime.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"chime\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"chime\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"chime\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"chime\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"chime\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://chime.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"chime\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://chime.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSChime/Paginators.swift b/Sources/Services/AWSChime/Paginators.swift index 2543b7087fb..1adfe9bf352 100644 --- a/Sources/Services/AWSChime/Paginators.swift +++ b/Sources/Services/AWSChime/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` extension ChimeClient { + /// Paginate over `[ListAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` public func listAccountsPaginated(input: ListAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountsInput.nextToken, outputKey: \ListAccountsOutputResponse.nextToken, paginationFunction: self.listAccounts(input:)) } @@ -26,16 +25,15 @@ extension ListAccountsInput: ClientRuntime.PaginateToken { userEmail: self.userEmail )} } - -/// Paginate over `[ListAppInstanceAdminsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstanceAdminsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceAdminsOutputResponse` extension ChimeClient { + /// Paginate over `[ListAppInstanceAdminsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstanceAdminsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceAdminsOutputResponse` public func listAppInstanceAdminsPaginated(input: ListAppInstanceAdminsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstanceAdminsInput.nextToken, outputKey: \ListAppInstanceAdminsOutputResponse.nextToken, paginationFunction: self.listAppInstanceAdmins(input:)) } @@ -49,16 +47,15 @@ extension ListAppInstanceAdminsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstancesOutputResponse` extension ChimeClient { + /// Paginate over `[ListAppInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstancesOutputResponse` public func listAppInstancesPaginated(input: ListAppInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstancesInput.nextToken, outputKey: \ListAppInstancesOutputResponse.nextToken, paginationFunction: self.listAppInstances(input:)) } @@ -71,16 +68,15 @@ extension ListAppInstancesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppInstanceUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstanceUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUsersOutputResponse` extension ChimeClient { + /// Paginate over `[ListAppInstanceUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstanceUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUsersOutputResponse` public func listAppInstanceUsersPaginated(input: ListAppInstanceUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstanceUsersInput.nextToken, outputKey: \ListAppInstanceUsersOutputResponse.nextToken, paginationFunction: self.listAppInstanceUsers(input:)) } @@ -94,16 +90,15 @@ extension ListAppInstanceUsersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAttendeesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttendeesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttendeesOutputResponse` extension ChimeClient { + /// Paginate over `[ListAttendeesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttendeesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttendeesOutputResponse` public func listAttendeesPaginated(input: ListAttendeesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttendeesInput.nextToken, outputKey: \ListAttendeesOutputResponse.nextToken, paginationFunction: self.listAttendees(input:)) } @@ -117,16 +112,15 @@ extension ListAttendeesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListBotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` extension ChimeClient { + /// Paginate over `[ListBotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` public func listBotsPaginated(input: ListBotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotsInput.nextToken, outputKey: \ListBotsOutputResponse.nextToken, paginationFunction: self.listBots(input:)) } @@ -140,16 +134,15 @@ extension ListBotsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelBansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelBansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelBansOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelBansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelBansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelBansOutputResponse` public func listChannelBansPaginated(input: ListChannelBansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelBansInput.nextToken, outputKey: \ListChannelBansOutputResponse.nextToken, paginationFunction: self.listChannelBans(input:)) } @@ -164,16 +157,15 @@ extension ListChannelBansInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelMembershipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMembershipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelMembershipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMembershipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsOutputResponse` public func listChannelMembershipsPaginated(input: ListChannelMembershipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMembershipsInput.nextToken, outputKey: \ListChannelMembershipsOutputResponse.nextToken, paginationFunction: self.listChannelMemberships(input:)) } @@ -189,16 +181,15 @@ extension ListChannelMembershipsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListChannelMembershipsForAppInstanceUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMembershipsForAppInstanceUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsForAppInstanceUserOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelMembershipsForAppInstanceUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMembershipsForAppInstanceUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsForAppInstanceUserOutputResponse` public func listChannelMembershipsForAppInstanceUserPaginated(input: ListChannelMembershipsForAppInstanceUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMembershipsForAppInstanceUserInput.nextToken, outputKey: \ListChannelMembershipsForAppInstanceUserOutputResponse.nextToken, paginationFunction: self.listChannelMembershipsForAppInstanceUser(input:)) } @@ -213,16 +204,15 @@ extension ListChannelMembershipsForAppInstanceUserInput: ClientRuntime.PaginateT nextToken: token )} } - -/// Paginate over `[ListChannelMessagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMessagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMessagesOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelMessagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMessagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMessagesOutputResponse` public func listChannelMessagesPaginated(input: ListChannelMessagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMessagesInput.nextToken, outputKey: \ListChannelMessagesOutputResponse.nextToken, paginationFunction: self.listChannelMessages(input:)) } @@ -240,16 +230,15 @@ extension ListChannelMessagesInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[ListChannelModeratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelModeratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelModeratorsOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelModeratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelModeratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelModeratorsOutputResponse` public func listChannelModeratorsPaginated(input: ListChannelModeratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelModeratorsInput.nextToken, outputKey: \ListChannelModeratorsOutputResponse.nextToken, paginationFunction: self.listChannelModerators(input:)) } @@ -264,16 +253,15 @@ extension ListChannelModeratorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -289,16 +277,15 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { privacy: self.privacy )} } - -/// Paginate over `[ListChannelsModeratedByAppInstanceUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsModeratedByAppInstanceUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsModeratedByAppInstanceUserOutputResponse` extension ChimeClient { + /// Paginate over `[ListChannelsModeratedByAppInstanceUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsModeratedByAppInstanceUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsModeratedByAppInstanceUserOutputResponse` public func listChannelsModeratedByAppInstanceUserPaginated(input: ListChannelsModeratedByAppInstanceUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsModeratedByAppInstanceUserInput.nextToken, outputKey: \ListChannelsModeratedByAppInstanceUserOutputResponse.nextToken, paginationFunction: self.listChannelsModeratedByAppInstanceUser(input:)) } @@ -313,16 +300,15 @@ extension ListChannelsModeratedByAppInstanceUserInput: ClientRuntime.PaginateTok nextToken: token )} } - -/// Paginate over `[ListMediaCapturePipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMediaCapturePipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMediaCapturePipelinesOutputResponse` extension ChimeClient { + /// Paginate over `[ListMediaCapturePipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMediaCapturePipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMediaCapturePipelinesOutputResponse` public func listMediaCapturePipelinesPaginated(input: ListMediaCapturePipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMediaCapturePipelinesInput.nextToken, outputKey: \ListMediaCapturePipelinesOutputResponse.nextToken, paginationFunction: self.listMediaCapturePipelines(input:)) } @@ -335,16 +321,15 @@ extension ListMediaCapturePipelinesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMeetingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMeetingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMeetingsOutputResponse` extension ChimeClient { + /// Paginate over `[ListMeetingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMeetingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMeetingsOutputResponse` public func listMeetingsPaginated(input: ListMeetingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMeetingsInput.nextToken, outputKey: \ListMeetingsOutputResponse.nextToken, paginationFunction: self.listMeetings(input:)) } @@ -357,16 +342,15 @@ extension ListMeetingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPhoneNumberOrdersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumberOrdersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumberOrdersOutputResponse` extension ChimeClient { + /// Paginate over `[ListPhoneNumberOrdersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumberOrdersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumberOrdersOutputResponse` public func listPhoneNumberOrdersPaginated(input: ListPhoneNumberOrdersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumberOrdersInput.nextToken, outputKey: \ListPhoneNumberOrdersOutputResponse.nextToken, paginationFunction: self.listPhoneNumberOrders(input:)) } @@ -379,16 +363,15 @@ extension ListPhoneNumberOrdersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` extension ChimeClient { + /// Paginate over `[ListPhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` public func listPhoneNumbersPaginated(input: ListPhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumbersInput.nextToken, outputKey: \ListPhoneNumbersOutputResponse.nextToken, paginationFunction: self.listPhoneNumbers(input:)) } @@ -405,16 +388,15 @@ extension ListPhoneNumbersInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListProxySessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProxySessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProxySessionsOutputResponse` extension ChimeClient { + /// Paginate over `[ListProxySessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProxySessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProxySessionsOutputResponse` public func listProxySessionsPaginated(input: ListProxySessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProxySessionsInput.nextToken, outputKey: \ListProxySessionsOutputResponse.nextToken, paginationFunction: self.listProxySessions(input:)) } @@ -429,16 +411,15 @@ extension ListProxySessionsInput: ClientRuntime.PaginateToken { voiceConnectorId: self.voiceConnectorId )} } - -/// Paginate over `[ListRoomMembershipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoomMembershipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoomMembershipsOutputResponse` extension ChimeClient { + /// Paginate over `[ListRoomMembershipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoomMembershipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoomMembershipsOutputResponse` public func listRoomMembershipsPaginated(input: ListRoomMembershipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoomMembershipsInput.nextToken, outputKey: \ListRoomMembershipsOutputResponse.nextToken, paginationFunction: self.listRoomMemberships(input:)) } @@ -453,16 +434,15 @@ extension ListRoomMembershipsInput: ClientRuntime.PaginateToken { roomId: self.roomId )} } - -/// Paginate over `[ListRoomsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoomsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoomsOutputResponse` extension ChimeClient { + /// Paginate over `[ListRoomsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoomsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoomsOutputResponse` public func listRoomsPaginated(input: ListRoomsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoomsInput.nextToken, outputKey: \ListRoomsOutputResponse.nextToken, paginationFunction: self.listRooms(input:)) } @@ -477,16 +457,15 @@ extension ListRoomsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSipMediaApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSipMediaApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSipMediaApplicationsOutputResponse` extension ChimeClient { + /// Paginate over `[ListSipMediaApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSipMediaApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSipMediaApplicationsOutputResponse` public func listSipMediaApplicationsPaginated(input: ListSipMediaApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSipMediaApplicationsInput.nextToken, outputKey: \ListSipMediaApplicationsOutputResponse.nextToken, paginationFunction: self.listSipMediaApplications(input:)) } @@ -499,16 +478,15 @@ extension ListSipMediaApplicationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSipRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSipRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSipRulesOutputResponse` extension ChimeClient { + /// Paginate over `[ListSipRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSipRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSipRulesOutputResponse` public func listSipRulesPaginated(input: ListSipRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSipRulesInput.nextToken, outputKey: \ListSipRulesOutputResponse.nextToken, paginationFunction: self.listSipRules(input:)) } @@ -522,16 +500,15 @@ extension ListSipRulesInput: ClientRuntime.PaginateToken { sipMediaApplicationId: self.sipMediaApplicationId )} } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension ChimeClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.nextToken, outputKey: \ListUsersOutputResponse.nextToken, paginationFunction: self.listUsers(input:)) } @@ -547,16 +524,15 @@ extension ListUsersInput: ClientRuntime.PaginateToken { userType: self.userType )} } - -/// Paginate over `[ListVoiceConnectorGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVoiceConnectorGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorGroupsOutputResponse` extension ChimeClient { + /// Paginate over `[ListVoiceConnectorGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVoiceConnectorGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorGroupsOutputResponse` public func listVoiceConnectorGroupsPaginated(input: ListVoiceConnectorGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVoiceConnectorGroupsInput.nextToken, outputKey: \ListVoiceConnectorGroupsOutputResponse.nextToken, paginationFunction: self.listVoiceConnectorGroups(input:)) } @@ -569,16 +545,15 @@ extension ListVoiceConnectorGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListVoiceConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVoiceConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorsOutputResponse` extension ChimeClient { + /// Paginate over `[ListVoiceConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVoiceConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorsOutputResponse` public func listVoiceConnectorsPaginated(input: ListVoiceConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVoiceConnectorsInput.nextToken, outputKey: \ListVoiceConnectorsOutputResponse.nextToken, paginationFunction: self.listVoiceConnectors(input:)) } @@ -591,16 +566,15 @@ extension ListVoiceConnectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` extension ChimeClient { + /// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` public func searchAvailablePhoneNumbersPaginated(input: SearchAvailablePhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchAvailablePhoneNumbersInput.nextToken, outputKey: \SearchAvailablePhoneNumbersOutputResponse.nextToken, paginationFunction: self.searchAvailablePhoneNumbers(input:)) } diff --git a/Sources/Services/AWSChimeSDKIdentity/Paginators.swift b/Sources/Services/AWSChimeSDKIdentity/Paginators.swift index e2f12e78fad..dab4d51ffdb 100644 --- a/Sources/Services/AWSChimeSDKIdentity/Paginators.swift +++ b/Sources/Services/AWSChimeSDKIdentity/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAppInstanceAdminsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstanceAdminsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceAdminsOutputResponse` extension ChimeSDKIdentityClient { + /// Paginate over `[ListAppInstanceAdminsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstanceAdminsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceAdminsOutputResponse` public func listAppInstanceAdminsPaginated(input: ListAppInstanceAdminsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstanceAdminsInput.nextToken, outputKey: \ListAppInstanceAdminsOutputResponse.nextToken, paginationFunction: self.listAppInstanceAdmins(input:)) } @@ -25,16 +24,15 @@ extension ListAppInstanceAdminsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstancesOutputResponse` extension ChimeSDKIdentityClient { + /// Paginate over `[ListAppInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstancesOutputResponse` public func listAppInstancesPaginated(input: ListAppInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstancesInput.nextToken, outputKey: \ListAppInstancesOutputResponse.nextToken, paginationFunction: self.listAppInstances(input:)) } @@ -47,16 +45,15 @@ extension ListAppInstancesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppInstanceUserEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstanceUserEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUserEndpointsOutputResponse` extension ChimeSDKIdentityClient { + /// Paginate over `[ListAppInstanceUserEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstanceUserEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUserEndpointsOutputResponse` public func listAppInstanceUserEndpointsPaginated(input: ListAppInstanceUserEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstanceUserEndpointsInput.nextToken, outputKey: \ListAppInstanceUserEndpointsOutputResponse.nextToken, paginationFunction: self.listAppInstanceUserEndpoints(input:)) } @@ -70,16 +67,15 @@ extension ListAppInstanceUserEndpointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppInstanceUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppInstanceUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUsersOutputResponse` extension ChimeSDKIdentityClient { + /// Paginate over `[ListAppInstanceUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppInstanceUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppInstanceUsersOutputResponse` public func listAppInstanceUsersPaginated(input: ListAppInstanceUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppInstanceUsersInput.nextToken, outputKey: \ListAppInstanceUsersOutputResponse.nextToken, paginationFunction: self.listAppInstanceUsers(input:)) } diff --git a/Sources/Services/AWSChimeSDKMediaPipelines/Paginators.swift b/Sources/Services/AWSChimeSDKMediaPipelines/Paginators.swift index f52840e61ab..861a565c0d3 100644 --- a/Sources/Services/AWSChimeSDKMediaPipelines/Paginators.swift +++ b/Sources/Services/AWSChimeSDKMediaPipelines/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListMediaCapturePipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMediaCapturePipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMediaCapturePipelinesOutputResponse` extension ChimeSDKMediaPipelinesClient { + /// Paginate over `[ListMediaCapturePipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMediaCapturePipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMediaCapturePipelinesOutputResponse` public func listMediaCapturePipelinesPaginated(input: ListMediaCapturePipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMediaCapturePipelinesInput.nextToken, outputKey: \ListMediaCapturePipelinesOutputResponse.nextToken, paginationFunction: self.listMediaCapturePipelines(input:)) } @@ -24,16 +23,15 @@ extension ListMediaCapturePipelinesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMediaPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMediaPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMediaPipelinesOutputResponse` extension ChimeSDKMediaPipelinesClient { + /// Paginate over `[ListMediaPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMediaPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMediaPipelinesOutputResponse` public func listMediaPipelinesPaginated(input: ListMediaPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMediaPipelinesInput.nextToken, outputKey: \ListMediaPipelinesOutputResponse.nextToken, paginationFunction: self.listMediaPipelines(input:)) } diff --git a/Sources/Services/AWSChimeSDKMeetings/Paginators.swift b/Sources/Services/AWSChimeSDKMeetings/Paginators.swift index f9cde4dc37c..8588dd9f2d3 100644 --- a/Sources/Services/AWSChimeSDKMeetings/Paginators.swift +++ b/Sources/Services/AWSChimeSDKMeetings/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAttendeesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttendeesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttendeesOutputResponse` extension ChimeSDKMeetingsClient { + /// Paginate over `[ListAttendeesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttendeesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttendeesOutputResponse` public func listAttendeesPaginated(input: ListAttendeesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttendeesInput.nextToken, outputKey: \ListAttendeesOutputResponse.nextToken, paginationFunction: self.listAttendees(input:)) } diff --git a/Sources/Services/AWSChimeSDKMessaging/Paginators.swift b/Sources/Services/AWSChimeSDKMessaging/Paginators.swift index d6f59f11a4c..506d2f3bb03 100644 --- a/Sources/Services/AWSChimeSDKMessaging/Paginators.swift +++ b/Sources/Services/AWSChimeSDKMessaging/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChannelBansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelBansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelBansOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelBansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelBansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelBansOutputResponse` public func listChannelBansPaginated(input: ListChannelBansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelBansInput.nextToken, outputKey: \ListChannelBansOutputResponse.nextToken, paginationFunction: self.listChannelBans(input:)) } @@ -26,16 +25,15 @@ extension ListChannelBansInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelFlowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelFlowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelFlowsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelFlowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelFlowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelFlowsOutputResponse` public func listChannelFlowsPaginated(input: ListChannelFlowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelFlowsInput.nextToken, outputKey: \ListChannelFlowsOutputResponse.nextToken, paginationFunction: self.listChannelFlows(input:)) } @@ -49,16 +47,15 @@ extension ListChannelFlowsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelMembershipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMembershipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelMembershipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMembershipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsOutputResponse` public func listChannelMembershipsPaginated(input: ListChannelMembershipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMembershipsInput.nextToken, outputKey: \ListChannelMembershipsOutputResponse.nextToken, paginationFunction: self.listChannelMemberships(input:)) } @@ -75,16 +72,15 @@ extension ListChannelMembershipsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListChannelMembershipsForAppInstanceUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMembershipsForAppInstanceUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsForAppInstanceUserOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelMembershipsForAppInstanceUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMembershipsForAppInstanceUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMembershipsForAppInstanceUserOutputResponse` public func listChannelMembershipsForAppInstanceUserPaginated(input: ListChannelMembershipsForAppInstanceUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMembershipsForAppInstanceUserInput.nextToken, outputKey: \ListChannelMembershipsForAppInstanceUserOutputResponse.nextToken, paginationFunction: self.listChannelMembershipsForAppInstanceUser(input:)) } @@ -99,16 +95,15 @@ extension ListChannelMembershipsForAppInstanceUserInput: ClientRuntime.PaginateT nextToken: token )} } - -/// Paginate over `[ListChannelMessagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelMessagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelMessagesOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelMessagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelMessagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelMessagesOutputResponse` public func listChannelMessagesPaginated(input: ListChannelMessagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelMessagesInput.nextToken, outputKey: \ListChannelMessagesOutputResponse.nextToken, paginationFunction: self.listChannelMessages(input:)) } @@ -127,16 +122,15 @@ extension ListChannelMessagesInput: ClientRuntime.PaginateToken { subChannelId: self.subChannelId )} } - -/// Paginate over `[ListChannelModeratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelModeratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelModeratorsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelModeratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelModeratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelModeratorsOutputResponse` public func listChannelModeratorsPaginated(input: ListChannelModeratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelModeratorsInput.nextToken, outputKey: \ListChannelModeratorsOutputResponse.nextToken, paginationFunction: self.listChannelModerators(input:)) } @@ -151,16 +145,15 @@ extension ListChannelModeratorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -176,16 +169,15 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { privacy: self.privacy )} } - -/// Paginate over `[ListChannelsAssociatedWithChannelFlowOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsAssociatedWithChannelFlowInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsAssociatedWithChannelFlowOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelsAssociatedWithChannelFlowOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsAssociatedWithChannelFlowInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsAssociatedWithChannelFlowOutputResponse` public func listChannelsAssociatedWithChannelFlowPaginated(input: ListChannelsAssociatedWithChannelFlowInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsAssociatedWithChannelFlowInput.nextToken, outputKey: \ListChannelsAssociatedWithChannelFlowOutputResponse.nextToken, paginationFunction: self.listChannelsAssociatedWithChannelFlow(input:)) } @@ -199,16 +191,15 @@ extension ListChannelsAssociatedWithChannelFlowInput: ClientRuntime.PaginateToke nextToken: token )} } - -/// Paginate over `[ListChannelsModeratedByAppInstanceUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsModeratedByAppInstanceUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsModeratedByAppInstanceUserOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListChannelsModeratedByAppInstanceUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsModeratedByAppInstanceUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsModeratedByAppInstanceUserOutputResponse` public func listChannelsModeratedByAppInstanceUserPaginated(input: ListChannelsModeratedByAppInstanceUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsModeratedByAppInstanceUserInput.nextToken, outputKey: \ListChannelsModeratedByAppInstanceUserOutputResponse.nextToken, paginationFunction: self.listChannelsModeratedByAppInstanceUser(input:)) } @@ -223,16 +214,15 @@ extension ListChannelsModeratedByAppInstanceUserInput: ClientRuntime.PaginateTok nextToken: token )} } - -/// Paginate over `[ListSubChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSubChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSubChannelsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[ListSubChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSubChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSubChannelsOutputResponse` public func listSubChannelsPaginated(input: ListSubChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSubChannelsInput.nextToken, outputKey: \ListSubChannelsOutputResponse.nextToken, paginationFunction: self.listSubChannels(input:)) } @@ -247,16 +237,15 @@ extension ListSubChannelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[SearchChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchChannelsOutputResponse` extension ChimeSDKMessagingClient { + /// Paginate over `[SearchChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchChannelsOutputResponse` public func searchChannelsPaginated(input: SearchChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchChannelsInput.nextToken, outputKey: \SearchChannelsOutputResponse.nextToken, paginationFunction: self.searchChannels(input:)) } diff --git a/Sources/Services/AWSChimeSDKVoice/Paginators.swift b/Sources/Services/AWSChimeSDKVoice/Paginators.swift index d856963f5ad..b9a3d90808d 100644 --- a/Sources/Services/AWSChimeSDKVoice/Paginators.swift +++ b/Sources/Services/AWSChimeSDKVoice/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListPhoneNumberOrdersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumberOrdersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumberOrdersOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListPhoneNumberOrdersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumberOrdersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumberOrdersOutputResponse` public func listPhoneNumberOrdersPaginated(input: ListPhoneNumberOrdersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumberOrdersInput.nextToken, outputKey: \ListPhoneNumberOrdersOutputResponse.nextToken, paginationFunction: self.listPhoneNumberOrders(input:)) } @@ -24,16 +23,15 @@ extension ListPhoneNumberOrdersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListPhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` public func listPhoneNumbersPaginated(input: ListPhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumbersInput.nextToken, outputKey: \ListPhoneNumbersOutputResponse.nextToken, paginationFunction: self.listPhoneNumbers(input:)) } @@ -50,16 +48,15 @@ extension ListPhoneNumbersInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListProxySessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProxySessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProxySessionsOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListProxySessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProxySessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProxySessionsOutputResponse` public func listProxySessionsPaginated(input: ListProxySessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProxySessionsInput.nextToken, outputKey: \ListProxySessionsOutputResponse.nextToken, paginationFunction: self.listProxySessions(input:)) } @@ -74,16 +71,15 @@ extension ListProxySessionsInput: ClientRuntime.PaginateToken { voiceConnectorId: self.voiceConnectorId )} } - -/// Paginate over `[ListSipMediaApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSipMediaApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSipMediaApplicationsOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListSipMediaApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSipMediaApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSipMediaApplicationsOutputResponse` public func listSipMediaApplicationsPaginated(input: ListSipMediaApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSipMediaApplicationsInput.nextToken, outputKey: \ListSipMediaApplicationsOutputResponse.nextToken, paginationFunction: self.listSipMediaApplications(input:)) } @@ -97,24 +93,23 @@ extension ListSipMediaApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSipMediaApplicationsPaginated` -/// to access the nested member `[ChimeSDKVoiceClientTypes.SipMediaApplication]` -/// - Returns: `[ChimeSDKVoiceClientTypes.SipMediaApplication]` extension PaginatorSequence where Input == ListSipMediaApplicationsInput, Output == ListSipMediaApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSipMediaApplicationsPaginated` + /// to access the nested member `[ChimeSDKVoiceClientTypes.SipMediaApplication]` + /// - Returns: `[ChimeSDKVoiceClientTypes.SipMediaApplication]` public func sipMediaApplications() async throws -> [ChimeSDKVoiceClientTypes.SipMediaApplication] { return try await self.asyncCompactMap { item in item.sipMediaApplications } } } - -/// Paginate over `[ListSipRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSipRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSipRulesOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListSipRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSipRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSipRulesOutputResponse` public func listSipRulesPaginated(input: ListSipRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSipRulesInput.nextToken, outputKey: \ListSipRulesOutputResponse.nextToken, paginationFunction: self.listSipRules(input:)) } @@ -129,24 +124,23 @@ extension ListSipRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSipRulesPaginated` -/// to access the nested member `[ChimeSDKVoiceClientTypes.SipRule]` -/// - Returns: `[ChimeSDKVoiceClientTypes.SipRule]` extension PaginatorSequence where Input == ListSipRulesInput, Output == ListSipRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSipRulesPaginated` + /// to access the nested member `[ChimeSDKVoiceClientTypes.SipRule]` + /// - Returns: `[ChimeSDKVoiceClientTypes.SipRule]` public func sipRules() async throws -> [ChimeSDKVoiceClientTypes.SipRule] { return try await self.asyncCompactMap { item in item.sipRules } } } - -/// Paginate over `[ListVoiceConnectorGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVoiceConnectorGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorGroupsOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListVoiceConnectorGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVoiceConnectorGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorGroupsOutputResponse` public func listVoiceConnectorGroupsPaginated(input: ListVoiceConnectorGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVoiceConnectorGroupsInput.nextToken, outputKey: \ListVoiceConnectorGroupsOutputResponse.nextToken, paginationFunction: self.listVoiceConnectorGroups(input:)) } @@ -159,16 +153,15 @@ extension ListVoiceConnectorGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListVoiceConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVoiceConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorsOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[ListVoiceConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVoiceConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVoiceConnectorsOutputResponse` public func listVoiceConnectorsPaginated(input: ListVoiceConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVoiceConnectorsInput.nextToken, outputKey: \ListVoiceConnectorsOutputResponse.nextToken, paginationFunction: self.listVoiceConnectors(input:)) } @@ -181,16 +174,15 @@ extension ListVoiceConnectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` extension ChimeSDKVoiceClient { + /// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` public func searchAvailablePhoneNumbersPaginated(input: SearchAvailablePhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchAvailablePhoneNumbersInput.nextToken, outputKey: \SearchAvailablePhoneNumbersOutputResponse.nextToken, paginationFunction: self.searchAvailablePhoneNumbers(input:)) } diff --git a/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift b/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift new file mode 100644 index 00000000000..a45cc0cc026 --- /dev/null +++ b/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift @@ -0,0 +1,1444 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime +import Foundation +import Logging + +public class CleanRoomsClient { + public static let clientName = "CleanRoomsClient" + let client: ClientRuntime.SdkHttpClient + let config: CleanRoomsClientConfigurationProtocol + let serviceName = "CleanRooms" + let encoder: ClientRuntime.RequestEncoder + let decoder: ClientRuntime.ResponseDecoder + + public init(config: CleanRoomsClientConfigurationProtocol) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + let encoder = ClientRuntime.JSONEncoder() + encoder.dateEncodingStrategy = .secondsSince1970 + encoder.nonConformingFloatEncodingStrategy = .convertToString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") + self.encoder = config.encoder ?? encoder + let decoder = ClientRuntime.JSONDecoder() + decoder.dateDecodingStrategy = .secondsSince1970 + decoder.nonConformingFloatDecodingStrategy = .convertFromString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") + self.decoder = config.decoder ?? decoder + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try CleanRoomsClientConfiguration(region: region) + self.init(config: config) + } + + public convenience init() async throws { + let config = try await CleanRoomsClientConfiguration() + self.init(config: config) + } + + public class CleanRoomsClientConfiguration: CleanRoomsClientConfigurationProtocol { + public var clientLogMode: ClientRuntime.ClientLogMode + public var decoder: ClientRuntime.ResponseDecoder? + public var encoder: ClientRuntime.RequestEncoder? + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + public var httpClientEngine: ClientRuntime.HttpClientEngine + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + public var logger: ClientRuntime.LogAgent + public var retryer: ClientRuntime.SDKRetryer + + public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var endpoint: Swift.String? + public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? + public var region: Swift.String? + public var regionResolver: AWSClientRuntime.RegionResolver? + public var signingRegion: Swift.String? + public var useDualStack: Swift.Bool? + public var useFIPS: Swift.Bool? + + public var endpointResolver: EndpointResolver + + public init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + region: Swift.String, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + if let credProvider = credentialsProvider { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromCustom(credProvider) + } else { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromChain() + } + self.endpoint = endpoint + if let endpointResolver = endpointResolver { + self.endpointResolver = endpointResolver + } else { + self.endpointResolver = try DefaultEndpointResolver() + } + self.frameworkMetadata = frameworkMetadata + self.region = region + self.regionResolver = try regionResolver ?? DefaultRegionResolver() + self.signingRegion = signingRegion ?? region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + self.clientLogMode = runtimeConfig.clientLogMode + self.decoder = runtimeConfig.decoder + self.encoder = runtimeConfig.encoder + self.httpClientConfiguration = runtimeConfig.httpClientConfiguration + self.httpClientEngine = runtimeConfig.httpClientEngine + self.idempotencyTokenGenerator = runtimeConfig.idempotencyTokenGenerator + self.logger = runtimeConfig.logger + self.retryer = runtimeConfig.retryer + } + + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + region: Swift.String, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let runtimeConfig = try ClientRuntime.DefaultSDKRuntimeConfiguration("CleanRoomsClient") + try self.init( + credentialsProvider: credentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + regionResolver: regionResolver, + runtimeConfig: runtimeConfig, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS + ) + } + + public init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) async throws { + if let credProvider = credentialsProvider { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromCustom(credProvider) + } else { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromChain() + } + self.endpoint = endpoint + if let endpointResolver = endpointResolver { + self.endpointResolver = endpointResolver + } else { + self.endpointResolver = try DefaultEndpointResolver() + } + self.frameworkMetadata = frameworkMetadata + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver() + self.region = await resolvedRegionResolver.resolveRegion() + self.regionResolver = try regionResolver ?? DefaultRegionResolver() + self.signingRegion = signingRegion ?? region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + self.clientLogMode = runtimeConfig.clientLogMode + self.decoder = runtimeConfig.decoder + self.encoder = runtimeConfig.encoder + self.httpClientConfiguration = runtimeConfig.httpClientConfiguration + self.httpClientEngine = runtimeConfig.httpClientEngine + self.idempotencyTokenGenerator = runtimeConfig.idempotencyTokenGenerator + self.logger = runtimeConfig.logger + self.retryer = runtimeConfig.retryer + } + + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) async throws { + let runtimeConfig = try ClientRuntime.DefaultSDKRuntimeConfiguration("CleanRoomsClient") + try await self.init( + credentialsProvider: credentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + regionResolver: regionResolver, + runtimeConfig: runtimeConfig, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS + ) + } + + public var partitionID: String? { + return "CleanRoomsClient - \(region ?? "")" + } + } +} + +public struct CleanRoomsClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFactory { + public var label = "CleanRoomsClient" + let logLevel: ClientRuntime.SDKLogLevel + public func construct(label: String) -> LogHandler { + var handler = StreamLogHandler.standardOutput(label: label) + handler.logLevel = logLevel.toLoggerType() + return handler + } + public init(logLevel: ClientRuntime.SDKLogLevel) { + self.logLevel = logLevel + } +} + +extension CleanRoomsClient: CleanRoomsClientProtocol { + /// Retrieves multiple schemas by their identifiers. + public func batchGetSchema(input: BatchGetSchemaInput) async throws -> BatchGetSchemaOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "batchGetSchema") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "batchGetSchema") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "BatchGetSchemaInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a new collaboration. + public func createCollaboration(input: CreateCollaborationInput) async throws -> CreateCollaborationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createCollaboration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createCollaboration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateCollaborationInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a new configured table resource. + public func createConfiguredTable(input: CreateConfiguredTableInput) async throws -> CreateConfiguredTableOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createConfiguredTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createConfiguredTable") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateConfiguredTableInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a new analysis rule for a configured table. Currently, only one analysis rule can be created for a given configured table. + public func createConfiguredTableAnalysisRule(input: CreateConfiguredTableAnalysisRuleInput) async throws -> CreateConfiguredTableAnalysisRuleOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createConfiguredTableAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createConfiguredTableAnalysisRule") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateConfiguredTableAnalysisRuleInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a configured table association. A configured table association links a configured table with a collaboration. + public func createConfiguredTableAssociation(input: CreateConfiguredTableAssociationInput) async throws -> CreateConfiguredTableAssociationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createConfiguredTableAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createConfiguredTableAssociation") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateConfiguredTableAssociationInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a membership for a specific collaboration identifier and joins the collaboration. + public func createMembership(input: CreateMembershipInput) async throws -> CreateMembershipOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createMembership") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createMembership") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateMembershipInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a collaboration. It can only be called by the collaboration owner. + public func deleteCollaboration(input: DeleteCollaborationInput) async throws -> DeleteCollaborationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteCollaboration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteCollaboration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a configured table. + public func deleteConfiguredTable(input: DeleteConfiguredTableInput) async throws -> DeleteConfiguredTableOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteConfiguredTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteConfiguredTable") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a configured table analysis rule. + public func deleteConfiguredTableAnalysisRule(input: DeleteConfiguredTableAnalysisRuleInput) async throws -> DeleteConfiguredTableAnalysisRuleOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteConfiguredTableAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteConfiguredTableAnalysisRule") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a configured table association. + public func deleteConfiguredTableAssociation(input: DeleteConfiguredTableAssociationInput) async throws -> DeleteConfiguredTableAssociationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteConfiguredTableAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteConfiguredTableAssociation") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Removes the specified member from a collaboration. The removed member is placed in the Removed status and can't interact with the collaboration. The removed member's data is inaccessible to active members of the collaboration. + public func deleteMember(input: DeleteMemberInput) async throws -> DeleteMemberOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteMember") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteMember") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a specified membership. All resources under a membership must be deleted. + public func deleteMembership(input: DeleteMembershipInput) async throws -> DeleteMembershipOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteMembership") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteMembership") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Returns metadata about a collaboration. + public func getCollaboration(input: GetCollaborationInput) async throws -> GetCollaborationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getCollaboration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getCollaboration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves a configured table. + public func getConfiguredTable(input: GetConfiguredTableInput) async throws -> GetConfiguredTableOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getConfiguredTable") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves a configured table analysis rule. + public func getConfiguredTableAnalysisRule(input: GetConfiguredTableAnalysisRuleInput) async throws -> GetConfiguredTableAnalysisRuleOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTableAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getConfiguredTableAnalysisRule") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves a configured table association. + public func getConfiguredTableAssociation(input: GetConfiguredTableAssociationInput) async throws -> GetConfiguredTableAssociationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTableAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getConfiguredTableAssociation") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves a specified membership for an identifier. + public func getMembership(input: GetMembershipInput) async throws -> GetMembershipOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getMembership") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getMembership") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Returns query processing metadata. + public func getProtectedQuery(input: GetProtectedQueryInput) async throws -> GetProtectedQueryOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getProtectedQuery") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getProtectedQuery") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves the schema for a relation within a collaboration. + public func getSchema(input: GetSchemaInput) async throws -> GetSchemaOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getSchema") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getSchema") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Retrieves a schema analysis rule. + public func getSchemaAnalysisRule(input: GetSchemaAnalysisRuleInput) async throws -> GetSchemaAnalysisRuleOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getSchemaAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getSchemaAnalysisRule") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists collaborations the caller owns, is active in, or has been invited to. + public func listCollaborations(input: ListCollaborationsInput) async throws -> ListCollaborationsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listCollaborations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listCollaborations") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists configured table associations for a membership. + public func listConfiguredTableAssociations(input: ListConfiguredTableAssociationsInput) async throws -> ListConfiguredTableAssociationsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listConfiguredTableAssociations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listConfiguredTableAssociations") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists configured tables. + public func listConfiguredTables(input: ListConfiguredTablesInput) async throws -> ListConfiguredTablesOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listConfiguredTables") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listConfiguredTables") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists all members within a collaboration. + public func listMembers(input: ListMembersInput) async throws -> ListMembersOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listMembers") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listMembers") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists all memberships resources within the caller's account. + public func listMemberships(input: ListMembershipsInput) async throws -> ListMembershipsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listMemberships") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listMemberships") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists protected queries, sorted by the most recent query. + public func listProtectedQueries(input: ListProtectedQueriesInput) async throws -> ListProtectedQueriesOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listProtectedQueries") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listProtectedQueries") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists the schemas for relations within a collaboration. + public func listSchemas(input: ListSchemasInput) async throws -> ListSchemasOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listSchemas") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listSchemas") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Creates a protected query that is started by AWS Clean Rooms. + public func startProtectedQuery(input: StartProtectedQueryInput) async throws -> StartProtectedQueryOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startProtectedQuery") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "startProtectedQuery") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "StartProtectedQueryInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates collaboration metadata and can only be called by the collaboration owner. + public func updateCollaboration(input: UpdateCollaborationInput) async throws -> UpdateCollaborationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateCollaboration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateCollaboration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateCollaborationInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates a configured table. + public func updateConfiguredTable(input: UpdateConfiguredTableInput) async throws -> UpdateConfiguredTableOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateConfiguredTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateConfiguredTable") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateConfiguredTableInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates a configured table analysis rule. + public func updateConfiguredTableAnalysisRule(input: UpdateConfiguredTableAnalysisRuleInput) async throws -> UpdateConfiguredTableAnalysisRuleOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateConfiguredTableAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateConfiguredTableAnalysisRule") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateConfiguredTableAnalysisRuleInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates a configured table association. + public func updateConfiguredTableAssociation(input: UpdateConfiguredTableAssociationInput) async throws -> UpdateConfiguredTableAssociationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateConfiguredTableAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateConfiguredTableAssociation") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateConfiguredTableAssociationInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates a membership. + public func updateMembership(input: UpdateMembershipInput) async throws -> UpdateMembershipOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateMembership") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateMembership") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateMembershipInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates the processing of a currently running query. + public func updateProtectedQuery(input: UpdateProtectedQueryInput) async throws -> UpdateProtectedQueryOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateProtectedQuery") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateProtectedQuery") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateProtectedQueryInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + +} diff --git a/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift b/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift new file mode 100644 index 00000000000..2f6543ef2ad --- /dev/null +++ b/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift @@ -0,0 +1,82 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime + +/// AWS Clean Rooms is in preview release and is subject to change. Welcome to the AWS Clean Rooms API Reference. AWS Clean Rooms is an AWS service that helps multiple parties to join their data together in a secure collaboration workspace. In the collaboration, members who can query and receive results can get insights into the combined data without either party getting access to the other party's raw data. To learn more about AWS Clean Rooms concepts, procedures, and best practices, see the [AWS Clean Rooms User Guide](https://docs.aws.amazon.com/clean-rooms/latest/userguide/what-is.html). +public protocol CleanRoomsClientProtocol { + /// Retrieves multiple schemas by their identifiers. + func batchGetSchema(input: BatchGetSchemaInput) async throws -> BatchGetSchemaOutputResponse + /// Creates a new collaboration. + func createCollaboration(input: CreateCollaborationInput) async throws -> CreateCollaborationOutputResponse + /// Creates a new configured table resource. + func createConfiguredTable(input: CreateConfiguredTableInput) async throws -> CreateConfiguredTableOutputResponse + /// Creates a new analysis rule for a configured table. Currently, only one analysis rule can be created for a given configured table. + func createConfiguredTableAnalysisRule(input: CreateConfiguredTableAnalysisRuleInput) async throws -> CreateConfiguredTableAnalysisRuleOutputResponse + /// Creates a configured table association. A configured table association links a configured table with a collaboration. + func createConfiguredTableAssociation(input: CreateConfiguredTableAssociationInput) async throws -> CreateConfiguredTableAssociationOutputResponse + /// Creates a membership for a specific collaboration identifier and joins the collaboration. + func createMembership(input: CreateMembershipInput) async throws -> CreateMembershipOutputResponse + /// Deletes a collaboration. It can only be called by the collaboration owner. + func deleteCollaboration(input: DeleteCollaborationInput) async throws -> DeleteCollaborationOutputResponse + /// Deletes a configured table. + func deleteConfiguredTable(input: DeleteConfiguredTableInput) async throws -> DeleteConfiguredTableOutputResponse + /// Deletes a configured table analysis rule. + func deleteConfiguredTableAnalysisRule(input: DeleteConfiguredTableAnalysisRuleInput) async throws -> DeleteConfiguredTableAnalysisRuleOutputResponse + /// Deletes a configured table association. + func deleteConfiguredTableAssociation(input: DeleteConfiguredTableAssociationInput) async throws -> DeleteConfiguredTableAssociationOutputResponse + /// Removes the specified member from a collaboration. The removed member is placed in the Removed status and can't interact with the collaboration. The removed member's data is inaccessible to active members of the collaboration. + func deleteMember(input: DeleteMemberInput) async throws -> DeleteMemberOutputResponse + /// Deletes a specified membership. All resources under a membership must be deleted. + func deleteMembership(input: DeleteMembershipInput) async throws -> DeleteMembershipOutputResponse + /// Returns metadata about a collaboration. + func getCollaboration(input: GetCollaborationInput) async throws -> GetCollaborationOutputResponse + /// Retrieves a configured table. + func getConfiguredTable(input: GetConfiguredTableInput) async throws -> GetConfiguredTableOutputResponse + /// Retrieves a configured table analysis rule. + func getConfiguredTableAnalysisRule(input: GetConfiguredTableAnalysisRuleInput) async throws -> GetConfiguredTableAnalysisRuleOutputResponse + /// Retrieves a configured table association. + func getConfiguredTableAssociation(input: GetConfiguredTableAssociationInput) async throws -> GetConfiguredTableAssociationOutputResponse + /// Retrieves a specified membership for an identifier. + func getMembership(input: GetMembershipInput) async throws -> GetMembershipOutputResponse + /// Returns query processing metadata. + func getProtectedQuery(input: GetProtectedQueryInput) async throws -> GetProtectedQueryOutputResponse + /// Retrieves the schema for a relation within a collaboration. + func getSchema(input: GetSchemaInput) async throws -> GetSchemaOutputResponse + /// Retrieves a schema analysis rule. + func getSchemaAnalysisRule(input: GetSchemaAnalysisRuleInput) async throws -> GetSchemaAnalysisRuleOutputResponse + /// Lists collaborations the caller owns, is active in, or has been invited to. + func listCollaborations(input: ListCollaborationsInput) async throws -> ListCollaborationsOutputResponse + /// Lists configured table associations for a membership. + func listConfiguredTableAssociations(input: ListConfiguredTableAssociationsInput) async throws -> ListConfiguredTableAssociationsOutputResponse + /// Lists configured tables. + func listConfiguredTables(input: ListConfiguredTablesInput) async throws -> ListConfiguredTablesOutputResponse + /// Lists all members within a collaboration. + func listMembers(input: ListMembersInput) async throws -> ListMembersOutputResponse + /// Lists all memberships resources within the caller's account. + func listMemberships(input: ListMembershipsInput) async throws -> ListMembershipsOutputResponse + /// Lists protected queries, sorted by the most recent query. + func listProtectedQueries(input: ListProtectedQueriesInput) async throws -> ListProtectedQueriesOutputResponse + /// Lists the schemas for relations within a collaboration. + func listSchemas(input: ListSchemasInput) async throws -> ListSchemasOutputResponse + /// Creates a protected query that is started by AWS Clean Rooms. + func startProtectedQuery(input: StartProtectedQueryInput) async throws -> StartProtectedQueryOutputResponse + /// Updates collaboration metadata and can only be called by the collaboration owner. + func updateCollaboration(input: UpdateCollaborationInput) async throws -> UpdateCollaborationOutputResponse + /// Updates a configured table. + func updateConfiguredTable(input: UpdateConfiguredTableInput) async throws -> UpdateConfiguredTableOutputResponse + /// Updates a configured table analysis rule. + func updateConfiguredTableAnalysisRule(input: UpdateConfiguredTableAnalysisRuleInput) async throws -> UpdateConfiguredTableAnalysisRuleOutputResponse + /// Updates a configured table association. + func updateConfiguredTableAssociation(input: UpdateConfiguredTableAssociationInput) async throws -> UpdateConfiguredTableAssociationOutputResponse + /// Updates a membership. + func updateMembership(input: UpdateMembershipInput) async throws -> UpdateMembershipOutputResponse + /// Updates the processing of a currently running query. + func updateProtectedQuery(input: UpdateProtectedQueryInput) async throws -> UpdateProtectedQueryOutputResponse +} + +public protocol CleanRoomsClientConfigurationProtocol : AWSClientRuntime.AWSClientConfiguration { + var endpointResolver: EndpointResolver { get } +} + +public enum CleanRoomsClientTypes {} diff --git a/Sources/Services/AWSCleanRooms/EndpointResolver.swift b/Sources/Services/AWSCleanRooms/EndpointResolver.swift new file mode 100644 index 00000000000..6a876f01bbc --- /dev/null +++ b/Sources/Services/AWSCleanRooms/EndpointResolver.swift @@ -0,0 +1,131 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String + /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + public let useDualStack: Swift.Bool + /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String, + useDualStack: Swift.Bool = false, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> ClientRuntime.Endpoint +} + +public struct DefaultEndpointResolver: EndpointResolver { + + private let engine: AWSClientRuntime.AWSEndpointsRuleEngine + private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cleanrooms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cleanrooms-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cleanrooms.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cleanrooms.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + + public init() throws { + engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) + } + + public func resolve(params: EndpointParams) throws -> ClientRuntime.Endpoint { + let context = try AWSClientRuntime.AWSEndpointsRequestContext() + try context.add(name: "Endpoint", value: params.endpoint) + try context.add(name: "Region", value: params.region) + try context.add(name: "UseDualStack", value: params.useDualStack) + try context.add(name: "UseFIPS", value: params.useFIPS) + + guard let crtResolvedEndpoint = try engine.resolve(context: context) else { + throw EndpointError.unresolved("Failed to resolved endpoint") + } + + if crtResolvedEndpoint.getType() == .error { + let error = crtResolvedEndpoint.getError() + throw EndpointError.unresolved(error) + } + + guard let url = crtResolvedEndpoint.getURL() else { + assertionFailure("This must be a bug in either CRT or the rule engine, if the endpoint is not an error, it must have a url") + throw EndpointError.unresolved("Failed to resolved endpoint") + } + + let headers = crtResolvedEndpoint.getHeaders() ?? [:] + let properties = crtResolvedEndpoint.getProperties() ?? [:] + return try Endpoint(urlString: url, headers: Headers(headers), properties: properties) + } +} + +public struct EndpointResolverMiddleware: ClientRuntime.Middleware { + public let id: Swift.String = "EndpointResolverMiddleware" + + let endpointResolver: EndpointResolver + + let endpointParams: EndpointParams + + public init(endpointResolver: EndpointResolver, endpointParams: EndpointParams) { + self.endpointResolver = endpointResolver + self.endpointParams = endpointParams + } + + public func handle(context: Context, + input: ClientRuntime.SdkHttpRequestBuilder, + next: H) async throws -> ClientRuntime.OperationOutput + where H: Handler, + Self.MInput == H.Input, + Self.MOutput == H.Output, + Self.Context == H.Context + { + let endpoint = try endpointResolver.resolve(params: endpointParams) + + let authScheme = endpoint.authScheme(name: "sigv4") + let awsEndpoint = AWSEndpoint(endpoint: endpoint, signingName: authScheme?["signingName"] as? String, signingRegion: authScheme?["signingRegion"] as? String) + + var host = "" + if let hostOverride = context.getHost() { + host = hostOverride + } else { + host = "\(context.getHostPrefix() ?? "")\(awsEndpoint.endpoint.host)" + } + + if let protocolType = awsEndpoint.endpoint.protocolType { + input.withProtocol(protocolType) + } + + var updatedContext = context + if let signingRegion = awsEndpoint.signingRegion { + updatedContext.attributes.set(key: HttpContext.signingRegion, value: signingRegion) + } + if let signingName = awsEndpoint.signingName { + updatedContext.attributes.set(key: HttpContext.signingName, value: signingName) + } + + if let headers = endpoint.headers { + input.withHeaders(headers) + } + + input.withMethod(context.getMethod()) + .withHost(host) + .withPort(awsEndpoint.endpoint.port) + .withPath(awsEndpoint.endpoint.path.appendingPathComponent(context.getPath())) + .withHeader(name: "Host", value: host) + + return try await next.handle(context: updatedContext, input: input) + } + + public typealias MInput = ClientRuntime.SdkHttpRequestBuilder + public typealias MOutput = ClientRuntime.OperationOutput + public typealias Context = ClientRuntime.HttpContext +} diff --git a/Sources/Services/AWSCleanRooms/Paginators.swift b/Sources/Services/AWSCleanRooms/Paginators.swift new file mode 100644 index 00000000000..0f79619f2fc --- /dev/null +++ b/Sources/Services/AWSCleanRooms/Paginators.swift @@ -0,0 +1,5 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + + + + diff --git a/Sources/Services/AWSCleanRooms/models/Models.swift b/Sources/Services/AWSCleanRooms/models/Models.swift new file mode 100644 index 00000000000..a043316b4ef --- /dev/null +++ b/Sources/Services/AWSCleanRooms/models/Models.swift @@ -0,0 +1,8864 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! +import AWSClientRuntime +import ClientRuntime + +extension AccessDeniedException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: AccessDeniedExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + self.reason = output.reason + } else { + self.message = nil + self.reason = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Caller does not have sufficient access to perform this action. +public struct AccessDeniedException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + /// A reason code for the exception. + public var reason: CleanRoomsClientTypes.AccessDeniedExceptionReason? + + public init ( + message: Swift.String? = nil, + reason: CleanRoomsClientTypes.AccessDeniedExceptionReason? = nil + ) + { + self.message = message + self.reason = reason + } +} + +struct AccessDeniedExceptionBody: Swift.Equatable { + let message: Swift.String? + let reason: CleanRoomsClientTypes.AccessDeniedExceptionReason? +} + +extension AccessDeniedExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + case reason + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let reasonDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AccessDeniedExceptionReason.self, forKey: .reason) + reason = reasonDecoded + } +} + +extension CleanRoomsClientTypes { + public enum AccessDeniedExceptionReason: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case insufficientPermissions + case sdkUnknown(Swift.String) + + public static var allCases: [AccessDeniedExceptionReason] { + return [ + .insufficientPermissions, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .insufficientPermissions: return "INSUFFICIENT_PERMISSIONS" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AccessDeniedExceptionReason(rawValue: rawValue) ?? AccessDeniedExceptionReason.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.AggregateColumn: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case columnNames + case function + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let columnNames = columnNames { + var columnNamesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .columnNames) + for analysisrulecolumnname0 in columnNames { + try columnNamesContainer.encode(analysisrulecolumnname0) + } + } + if let function = self.function { + try encodeContainer.encode(function.rawValue, forKey: .function) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let columnNamesContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .columnNames) + var columnNamesDecoded0:[Swift.String]? = nil + if let columnNamesContainer = columnNamesContainer { + columnNamesDecoded0 = [Swift.String]() + for string0 in columnNamesContainer { + if let string0 = string0 { + columnNamesDecoded0?.append(string0) + } + } + } + columnNames = columnNamesDecoded0 + let functionDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AggregateFunctionName.self, forKey: .function) + function = functionDecoded + } +} + +extension CleanRoomsClientTypes { + /// Column in configured table that can be used in aggregate function in query. + public struct AggregateColumn: Swift.Equatable { + /// Column names in configured table of aggregate columns. + /// This member is required. + public var columnNames: [Swift.String]? + /// Aggregation function that can be applied to aggregate column in query. + /// This member is required. + public var function: CleanRoomsClientTypes.AggregateFunctionName? + + public init ( + columnNames: [Swift.String]? = nil, + function: CleanRoomsClientTypes.AggregateFunctionName? = nil + ) + { + self.columnNames = columnNames + self.function = function + } + } + +} + +extension CleanRoomsClientTypes { + public enum AggregateFunctionName: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case avg + case count + case countDistinct + case sum + case sumDistinct + case sdkUnknown(Swift.String) + + public static var allCases: [AggregateFunctionName] { + return [ + .avg, + .count, + .countDistinct, + .sum, + .sumDistinct, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .avg: return "AVG" + case .count: return "COUNT" + case .countDistinct: return "COUNT_DISTINCT" + case .sum: return "SUM" + case .sumDistinct: return "SUM_DISTINCT" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AggregateFunctionName(rawValue: rawValue) ?? AggregateFunctionName.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.AggregationConstraint: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case columnName + case minimum + case type + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let columnName = self.columnName { + try encodeContainer.encode(columnName, forKey: .columnName) + } + if let minimum = self.minimum { + try encodeContainer.encode(minimum, forKey: .minimum) + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let columnNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .columnName) + columnName = columnNameDecoded + let minimumDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .minimum) + minimum = minimumDecoded + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AggregationType.self, forKey: .type) + type = typeDecoded + } +} + +extension CleanRoomsClientTypes { + /// Constraint on query output removing output rows that do not meet a minimum number of distinct values of a specified column. + public struct AggregationConstraint: Swift.Equatable { + /// Column in aggregation constraint for which there must be a minimum number of distinct values in an output row for it to be in the query output. + /// This member is required. + public var columnName: Swift.String? + /// The minimum number of distinct values that an output row must be an aggregation of. Minimum threshold of distinct values for a specified column that must exist in an output row for it to be in the query output. + /// This member is required. + public var minimum: Swift.Int? + /// The type of aggregation the constraint allows. The only valid value is currently `COUNT_DISTINCT`. + /// This member is required. + public var type: CleanRoomsClientTypes.AggregationType? + + public init ( + columnName: Swift.String? = nil, + minimum: Swift.Int? = nil, + type: CleanRoomsClientTypes.AggregationType? = nil + ) + { + self.columnName = columnName + self.minimum = minimum + self.type = type + } + } + +} + +extension CleanRoomsClientTypes { + public enum AggregationType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case countDistinct + case sdkUnknown(Swift.String) + + public static var allCases: [AggregationType] { + return [ + .countDistinct, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .countDistinct: return "COUNT_DISTINCT" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AggregationType(rawValue: rawValue) ?? AggregationType.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes { + public enum AnalysisMethod: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case directQuery + case sdkUnknown(Swift.String) + + public static var allCases: [AnalysisMethod] { + return [ + .directQuery, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .directQuery: return "DIRECT_QUERY" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AnalysisMethod(rawValue: rawValue) ?? AnalysisMethod.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.AnalysisRule: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaborationId + case createTime + case name + case policy + case type + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let collaborationId = self.collaborationId { + try encodeContainer.encode(collaborationId, forKey: .collaborationId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let policy = self.policy { + try encodeContainer.encode(policy, forKey: .policy) + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let collaborationIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationId) + collaborationId = collaborationIdDecoded + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisRuleType.self, forKey: .type) + type = typeDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let policyDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisRulePolicy.self, forKey: .policy) + policy = policyDecoded + } +} + +extension CleanRoomsClientTypes { + /// A specification about how data from the configured table can be used in a query. + public struct AnalysisRule: Swift.Equatable { + /// The unique ID for the associated collaboration. + /// This member is required. + public var collaborationId: Swift.String? + /// The time the analysis rule was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The name for the analysis rule. + /// This member is required. + public var name: Swift.String? + /// A policy that describes the associated data usage limitations. + /// This member is required. + public var policy: CleanRoomsClientTypes.AnalysisRulePolicy? + /// The type of analysis rule. Valid values are `AGGREGATION` and `LIST`. + /// This member is required. + public var type: CleanRoomsClientTypes.AnalysisRuleType? + /// The time the analysis rule was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + collaborationId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + name: Swift.String? = nil, + policy: CleanRoomsClientTypes.AnalysisRulePolicy? = nil, + type: CleanRoomsClientTypes.AnalysisRuleType? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.collaborationId = collaborationId + self.createTime = createTime + self.name = name + self.policy = policy + self.type = type + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.AnalysisRuleAggregation: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case aggregateColumns + case dimensionColumns + case joinColumns + case joinRequired + case outputConstraints + case scalarFunctions + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let aggregateColumns = aggregateColumns { + var aggregateColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .aggregateColumns) + for aggregatecolumn0 in aggregateColumns { + try aggregateColumnsContainer.encode(aggregatecolumn0) + } + } + if let dimensionColumns = dimensionColumns { + var dimensionColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .dimensionColumns) + for analysisrulecolumnname0 in dimensionColumns { + try dimensionColumnsContainer.encode(analysisrulecolumnname0) + } + } + if let joinColumns = joinColumns { + var joinColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .joinColumns) + for analysisrulecolumnname0 in joinColumns { + try joinColumnsContainer.encode(analysisrulecolumnname0) + } + } + if let joinRequired = self.joinRequired { + try encodeContainer.encode(joinRequired.rawValue, forKey: .joinRequired) + } + if let outputConstraints = outputConstraints { + var outputConstraintsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .outputConstraints) + for aggregationconstraint0 in outputConstraints { + try outputConstraintsContainer.encode(aggregationconstraint0) + } + } + if let scalarFunctions = scalarFunctions { + var scalarFunctionsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .scalarFunctions) + for scalarfunctions0 in scalarFunctions { + try scalarFunctionsContainer.encode(scalarfunctions0.rawValue) + } + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let aggregateColumnsContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.AggregateColumn?].self, forKey: .aggregateColumns) + var aggregateColumnsDecoded0:[CleanRoomsClientTypes.AggregateColumn]? = nil + if let aggregateColumnsContainer = aggregateColumnsContainer { + aggregateColumnsDecoded0 = [CleanRoomsClientTypes.AggregateColumn]() + for structure0 in aggregateColumnsContainer { + if let structure0 = structure0 { + aggregateColumnsDecoded0?.append(structure0) + } + } + } + aggregateColumns = aggregateColumnsDecoded0 + let joinColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .joinColumns) + var joinColumnsDecoded0:[Swift.String]? = nil + if let joinColumnsContainer = joinColumnsContainer { + joinColumnsDecoded0 = [Swift.String]() + for string0 in joinColumnsContainer { + if let string0 = string0 { + joinColumnsDecoded0?.append(string0) + } + } + } + joinColumns = joinColumnsDecoded0 + let joinRequiredDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.JoinRequiredOption.self, forKey: .joinRequired) + joinRequired = joinRequiredDecoded + let dimensionColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .dimensionColumns) + var dimensionColumnsDecoded0:[Swift.String]? = nil + if let dimensionColumnsContainer = dimensionColumnsContainer { + dimensionColumnsDecoded0 = [Swift.String]() + for string0 in dimensionColumnsContainer { + if let string0 = string0 { + dimensionColumnsDecoded0?.append(string0) + } + } + } + dimensionColumns = dimensionColumnsDecoded0 + let scalarFunctionsContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ScalarFunctions?].self, forKey: .scalarFunctions) + var scalarFunctionsDecoded0:[CleanRoomsClientTypes.ScalarFunctions]? = nil + if let scalarFunctionsContainer = scalarFunctionsContainer { + scalarFunctionsDecoded0 = [CleanRoomsClientTypes.ScalarFunctions]() + for string0 in scalarFunctionsContainer { + if let string0 = string0 { + scalarFunctionsDecoded0?.append(string0) + } + } + } + scalarFunctions = scalarFunctionsDecoded0 + let outputConstraintsContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.AggregationConstraint?].self, forKey: .outputConstraints) + var outputConstraintsDecoded0:[CleanRoomsClientTypes.AggregationConstraint]? = nil + if let outputConstraintsContainer = outputConstraintsContainer { + outputConstraintsDecoded0 = [CleanRoomsClientTypes.AggregationConstraint]() + for structure0 in outputConstraintsContainer { + if let structure0 = structure0 { + outputConstraintsDecoded0?.append(structure0) + } + } + } + outputConstraints = outputConstraintsDecoded0 + } +} + +extension CleanRoomsClientTypes { + /// Enables query structure and specified queries that product aggregate statistics. + public struct AnalysisRuleAggregation: Swift.Equatable { + /// The columns that query runners are allowed to use in aggregation queries. + /// This member is required. + public var aggregateColumns: [CleanRoomsClientTypes.AggregateColumn]? + /// The columns that query runners are allowed to select, group by, or filter by. + /// This member is required. + public var dimensionColumns: [Swift.String]? + /// Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be outputted directly. + /// This member is required. + public var joinColumns: [Swift.String]? + /// Control that requires member who runs query to do a join with their configured table and/or other configured table in query + public var joinRequired: CleanRoomsClientTypes.JoinRequiredOption? + /// Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each output row to be returned. + /// This member is required. + public var outputConstraints: [CleanRoomsClientTypes.AggregationConstraint]? + /// Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of metrics. + /// This member is required. + public var scalarFunctions: [CleanRoomsClientTypes.ScalarFunctions]? + + public init ( + aggregateColumns: [CleanRoomsClientTypes.AggregateColumn]? = nil, + dimensionColumns: [Swift.String]? = nil, + joinColumns: [Swift.String]? = nil, + joinRequired: CleanRoomsClientTypes.JoinRequiredOption? = nil, + outputConstraints: [CleanRoomsClientTypes.AggregationConstraint]? = nil, + scalarFunctions: [CleanRoomsClientTypes.ScalarFunctions]? = nil + ) + { + self.aggregateColumns = aggregateColumns + self.dimensionColumns = dimensionColumns + self.joinColumns = joinColumns + self.joinRequired = joinRequired + self.outputConstraints = outputConstraints + self.scalarFunctions = scalarFunctions + } + } + +} + +extension CleanRoomsClientTypes.AnalysisRuleList: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case joinColumns + case listColumns + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let joinColumns = joinColumns { + var joinColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .joinColumns) + for analysisrulecolumnname0 in joinColumns { + try joinColumnsContainer.encode(analysisrulecolumnname0) + } + } + if let listColumns = listColumns { + var listColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .listColumns) + for analysisrulecolumnname0 in listColumns { + try listColumnsContainer.encode(analysisrulecolumnname0) + } + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let joinColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .joinColumns) + var joinColumnsDecoded0:[Swift.String]? = nil + if let joinColumnsContainer = joinColumnsContainer { + joinColumnsDecoded0 = [Swift.String]() + for string0 in joinColumnsContainer { + if let string0 = string0 { + joinColumnsDecoded0?.append(string0) + } + } + } + joinColumns = joinColumnsDecoded0 + let listColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .listColumns) + var listColumnsDecoded0:[Swift.String]? = nil + if let listColumnsContainer = listColumnsContainer { + listColumnsDecoded0 = [Swift.String]() + for string0 in listColumnsContainer { + if let string0 = string0 { + listColumnsDecoded0?.append(string0) + } + } + } + listColumns = listColumnsDecoded0 + } +} + +extension CleanRoomsClientTypes { + /// A type of analysis rule that enables row-level analysis. + public struct AnalysisRuleList: Swift.Equatable { + /// Columns that can be used to join a configured table with the table of the member who can query and another members' configured tables. + /// This member is required. + public var joinColumns: [Swift.String]? + /// Columns that can be listed in the output. + /// This member is required. + public var listColumns: [Swift.String]? + + public init ( + joinColumns: [Swift.String]? = nil, + listColumns: [Swift.String]? = nil + ) + { + self.joinColumns = joinColumns + self.listColumns = listColumns + } + } + +} + +extension CleanRoomsClientTypes.AnalysisRulePolicy: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case sdkUnknown + case v1 + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .v1(v1): + try container.encode(v1, forKey: .v1) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let v1Decoded = try values.decodeIfPresent(CleanRoomsClientTypes.AnalysisRulePolicyV1.self, forKey: .v1) + if let v1 = v1Decoded { + self = .v1(v1) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Controls on the query specifications that can be run on configured table.. + public enum AnalysisRulePolicy: Swift.Equatable { + /// Controls on the query specifications that can be run on configured table.. + case v1(CleanRoomsClientTypes.AnalysisRulePolicyV1) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes.AnalysisRulePolicyV1: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case aggregation + case list + case sdkUnknown + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .aggregation(aggregation): + try container.encode(aggregation, forKey: .aggregation) + case let .list(list): + try container.encode(list, forKey: .list) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let listDecoded = try values.decodeIfPresent(CleanRoomsClientTypes.AnalysisRuleList.self, forKey: .list) + if let list = listDecoded { + self = .list(list) + return + } + let aggregationDecoded = try values.decodeIfPresent(CleanRoomsClientTypes.AnalysisRuleAggregation.self, forKey: .aggregation) + if let aggregation = aggregationDecoded { + self = .aggregation(aggregation) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Controls on the query specifications that can be run on configured table.. + public enum AnalysisRulePolicyV1: Swift.Equatable { + /// Analysis rule type that enables only list queries on a configured table. + case list(CleanRoomsClientTypes.AnalysisRuleList) + /// Analysis rule type that enables only aggregation queries on a configured table. + case aggregation(CleanRoomsClientTypes.AnalysisRuleAggregation) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes { + public enum AnalysisRuleType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case aggregation + case list + case sdkUnknown(Swift.String) + + public static var allCases: [AnalysisRuleType] { + return [ + .aggregation, + .list, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .aggregation: return "AGGREGATION" + case .list: return "LIST" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AnalysisRuleType(rawValue: rawValue) ?? AnalysisRuleType.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.BatchGetSchemaError: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case code + case message + case name + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let code = self.code { + try encodeContainer.encode(code, forKey: .code) + } + if let message = self.message { + try encodeContainer.encode(message, forKey: .message) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let codeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .code) + code = codeDecoded + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension CleanRoomsClientTypes { + /// An error describing why a schema could not be fetched. + public struct BatchGetSchemaError: Swift.Equatable { + /// An error code for the error. + /// This member is required. + public var code: Swift.String? + /// An error message for the error. + /// This member is required. + public var message: Swift.String? + /// An error name for the error. + /// This member is required. + public var name: Swift.String? + + public init ( + code: Swift.String? = nil, + message: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.code = code + self.message = message + self.name = name + } + } + +} + +extension BatchGetSchemaInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case names + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let names = names { + var namesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .names) + for tablealias0 in names { + try namesContainer.encode(tablealias0) + } + } + } +} + +extension BatchGetSchemaInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/batch-schema" + } +} + +public struct BatchGetSchemaInput: Swift.Equatable { + /// A unique identifier for the collaboration that the schemas belong to. Currently accepts collaboration ID. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The names for the schema objects to retrieve.> + /// This member is required. + public var names: [Swift.String]? + + public init ( + collaborationIdentifier: Swift.String? = nil, + names: [Swift.String]? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.names = names + } +} + +struct BatchGetSchemaInputBody: Swift.Equatable { + let names: [Swift.String]? +} + +extension BatchGetSchemaInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case names + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let namesContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .names) + var namesDecoded0:[Swift.String]? = nil + if let namesContainer = namesContainer { + namesDecoded0 = [Swift.String]() + for string0 in namesContainer { + if let string0 = string0 { + namesDecoded0?.append(string0) + } + } + } + names = namesDecoded0 + } +} + +extension BatchGetSchemaOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension BatchGetSchemaOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum BatchGetSchemaOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension BatchGetSchemaOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: BatchGetSchemaOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.errors = output.errors + self.schemas = output.schemas + } else { + self.errors = nil + self.schemas = nil + } + } +} + +public struct BatchGetSchemaOutputResponse: Swift.Equatable { + /// Error reasons for schemas that could not be retrieved. One error is returned for every schema that could not be retrieved. + /// This member is required. + public var errors: [CleanRoomsClientTypes.BatchGetSchemaError]? + /// The retrieved list of schemas. + /// This member is required. + public var schemas: [CleanRoomsClientTypes.Schema]? + + public init ( + errors: [CleanRoomsClientTypes.BatchGetSchemaError]? = nil, + schemas: [CleanRoomsClientTypes.Schema]? = nil + ) + { + self.errors = errors + self.schemas = schemas + } +} + +struct BatchGetSchemaOutputResponseBody: Swift.Equatable { + let schemas: [CleanRoomsClientTypes.Schema]? + let errors: [CleanRoomsClientTypes.BatchGetSchemaError]? +} + +extension BatchGetSchemaOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case errors + case schemas + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let schemasContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.Schema?].self, forKey: .schemas) + var schemasDecoded0:[CleanRoomsClientTypes.Schema]? = nil + if let schemasContainer = schemasContainer { + schemasDecoded0 = [CleanRoomsClientTypes.Schema]() + for structure0 in schemasContainer { + if let structure0 = structure0 { + schemasDecoded0?.append(structure0) + } + } + } + schemas = schemasDecoded0 + let errorsContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.BatchGetSchemaError?].self, forKey: .errors) + var errorsDecoded0:[CleanRoomsClientTypes.BatchGetSchemaError]? = nil + if let errorsContainer = errorsContainer { + errorsDecoded0 = [CleanRoomsClientTypes.BatchGetSchemaError]() + for structure0 in errorsContainer { + if let structure0 = structure0 { + errorsDecoded0?.append(structure0) + } + } + } + errors = errorsDecoded0 + } +} + +extension CleanRoomsClientTypes.Collaboration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case createTime + case creatorAccountId + case creatorDisplayName + case dataEncryptionMetadata + case description + case id + case memberStatus + case membershipArn + case membershipId + case name + case queryLogStatus + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let creatorAccountId = self.creatorAccountId { + try encodeContainer.encode(creatorAccountId, forKey: .creatorAccountId) + } + if let creatorDisplayName = self.creatorDisplayName { + try encodeContainer.encode(creatorDisplayName, forKey: .creatorDisplayName) + } + if let dataEncryptionMetadata = self.dataEncryptionMetadata { + try encodeContainer.encode(dataEncryptionMetadata, forKey: .dataEncryptionMetadata) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let memberStatus = self.memberStatus { + try encodeContainer.encode(memberStatus.rawValue, forKey: .memberStatus) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let queryLogStatus = self.queryLogStatus { + try encodeContainer.encode(queryLogStatus.rawValue, forKey: .queryLogStatus) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let creatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorAccountId) + creatorAccountId = creatorAccountIdDecoded + let creatorDisplayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorDisplayName) + creatorDisplayName = creatorDisplayNameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let memberStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MemberStatus.self, forKey: .memberStatus) + memberStatus = memberStatusDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + let dataEncryptionMetadataDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.DataEncryptionMetadata.self, forKey: .dataEncryptionMetadata) + dataEncryptionMetadata = dataEncryptionMetadataDecoded + let queryLogStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.CollaborationQueryLogStatus.self, forKey: .queryLogStatus) + queryLogStatus = queryLogStatusDecoded + } +} + +extension CleanRoomsClientTypes { + /// The multi-party data share environment. The collaboration contains metadata about its purpose and participants. + public struct Collaboration: Swift.Equatable { + /// The unique ARN for the collaboration. + /// This member is required. + public var arn: Swift.String? + /// The time when the collaboration was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The identifier used to reference members of the collaboration. Currently only supports AWS account ID. + /// This member is required. + public var creatorAccountId: Swift.String? + /// A display name of the collaboration creator. + /// This member is required. + public var creatorDisplayName: Swift.String? + /// The settings for client-side encryption for cryptographic computing. + public var dataEncryptionMetadata: CleanRoomsClientTypes.DataEncryptionMetadata? + /// A description of the collaboration provided by the collaboration owner. + public var description: Swift.String? + /// The unique ID for the collaboration. + /// This member is required. + public var id: Swift.String? + /// The status of a member in a collaboration. + /// This member is required. + public var memberStatus: CleanRoomsClientTypes.MemberStatus? + /// The unique ARN for your membership within the collaboration. + public var membershipArn: Swift.String? + /// The unique ID for your membership within the collaboration. + public var membershipId: Swift.String? + /// A human-readable identifier provided by the collaboration owner. Display names are not unique. + /// This member is required. + public var name: Swift.String? + /// An indicator as to whether query logging has been enabled or disabled for the collaboration. + /// This member is required. + public var queryLogStatus: CleanRoomsClientTypes.CollaborationQueryLogStatus? + /// The time the collaboration metadata was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + creatorAccountId: Swift.String? = nil, + creatorDisplayName: Swift.String? = nil, + dataEncryptionMetadata: CleanRoomsClientTypes.DataEncryptionMetadata? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + memberStatus: CleanRoomsClientTypes.MemberStatus? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + queryLogStatus: CleanRoomsClientTypes.CollaborationQueryLogStatus? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.creatorDisplayName = creatorDisplayName + self.dataEncryptionMetadata = dataEncryptionMetadata + self.description = description + self.id = id + self.memberStatus = memberStatus + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.queryLogStatus = queryLogStatus + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes { + public enum CollaborationQueryLogStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [CollaborationQueryLogStatus] { + return [ + .disabled, + .enabled, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = CollaborationQueryLogStatus(rawValue: rawValue) ?? CollaborationQueryLogStatus.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.CollaborationSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case createTime + case creatorAccountId + case creatorDisplayName + case id + case memberStatus + case membershipArn + case membershipId + case name + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let creatorAccountId = self.creatorAccountId { + try encodeContainer.encode(creatorAccountId, forKey: .creatorAccountId) + } + if let creatorDisplayName = self.creatorDisplayName { + try encodeContainer.encode(creatorDisplayName, forKey: .creatorDisplayName) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let memberStatus = self.memberStatus { + try encodeContainer.encode(memberStatus.rawValue, forKey: .memberStatus) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let creatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorAccountId) + creatorAccountId = creatorAccountIdDecoded + let creatorDisplayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorDisplayName) + creatorDisplayName = creatorDisplayNameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let memberStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MemberStatus.self, forKey: .memberStatus) + memberStatus = memberStatusDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + } +} + +extension CleanRoomsClientTypes { + /// The metadata of the collaboration. + public struct CollaborationSummary: Swift.Equatable { + /// The ARN of the collaboration. + /// This member is required. + public var arn: Swift.String? + /// The time when the collaboration was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The identifier used to reference members of the collaboration. Currently only supports AWS Account ID. + /// This member is required. + public var creatorAccountId: Swift.String? + /// The display name of the collaboration creator. + /// This member is required. + public var creatorDisplayName: Swift.String? + /// The identifier for the collaboration. + /// This member is required. + public var id: Swift.String? + /// The status of a member in a collaboration. + /// This member is required. + public var memberStatus: CleanRoomsClientTypes.MemberStatus? + /// The ARN of a member in a collaboration. + public var membershipArn: Swift.String? + /// The identifier of a member in a collaboration. + public var membershipId: Swift.String? + /// A human-readable identifier provided by the collaboration owner. Display names are not unique. + /// This member is required. + public var name: Swift.String? + /// The time the collaboration metadata was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + creatorAccountId: Swift.String? = nil, + creatorDisplayName: Swift.String? = nil, + id: Swift.String? = nil, + memberStatus: CleanRoomsClientTypes.MemberStatus? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.creatorDisplayName = creatorDisplayName + self.id = id + self.memberStatus = memberStatus + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.Column: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case name + case type + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let type = self.type { + try encodeContainer.encode(type, forKey: .type) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let typeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .type) + type = typeDecoded + } +} + +extension CleanRoomsClientTypes { + /// A column within a schema relation, derived from the underlying AWS Glue table. + public struct Column: Swift.Equatable { + /// The name of the column. + /// This member is required. + public var name: Swift.String? + /// The type of the column. + /// This member is required. + public var type: Swift.String? + + public init ( + name: Swift.String? = nil, + type: Swift.String? = nil + ) + { + self.name = name + self.type = type + } + } + +} + +extension CleanRoomsClientTypes.ConfiguredTable: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case allowedColumns + case analysisMethod + case analysisRuleTypes + case arn + case createTime + case description + case id + case name + case tableReference + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let allowedColumns = allowedColumns { + var allowedColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .allowedColumns) + for columnname0 in allowedColumns { + try allowedColumnsContainer.encode(columnname0) + } + } + if let analysisMethod = self.analysisMethod { + try encodeContainer.encode(analysisMethod.rawValue, forKey: .analysisMethod) + } + if let analysisRuleTypes = analysisRuleTypes { + var analysisRuleTypesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .analysisRuleTypes) + for configuredtableanalysisruletype0 in analysisRuleTypes { + try analysisRuleTypesContainer.encode(configuredtableanalysisruletype0.rawValue) + } + } + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let tableReference = self.tableReference { + try encodeContainer.encode(tableReference, forKey: .tableReference) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let tableReferenceDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.TableReference.self, forKey: .tableReference) + tableReference = tableReferenceDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let analysisRuleTypesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType?].self, forKey: .analysisRuleTypes) + var analysisRuleTypesDecoded0:[CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? = nil + if let analysisRuleTypesContainer = analysisRuleTypesContainer { + analysisRuleTypesDecoded0 = [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]() + for enum0 in analysisRuleTypesContainer { + if let enum0 = enum0 { + analysisRuleTypesDecoded0?.append(enum0) + } + } + } + analysisRuleTypes = analysisRuleTypesDecoded0 + let analysisMethodDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisMethod.self, forKey: .analysisMethod) + analysisMethod = analysisMethodDecoded + let allowedColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .allowedColumns) + var allowedColumnsDecoded0:[Swift.String]? = nil + if let allowedColumnsContainer = allowedColumnsContainer { + allowedColumnsDecoded0 = [Swift.String]() + for string0 in allowedColumnsContainer { + if let string0 = string0 { + allowedColumnsDecoded0?.append(string0) + } + } + } + allowedColumns = allowedColumnsDecoded0 + } +} + +extension CleanRoomsClientTypes { + /// A table that has been configured for use in a collaboration. + public struct ConfiguredTable: Swift.Equatable { + /// The columns within the underlying AWS Glue table that can be utilized within collaborations. + /// This member is required. + public var allowedColumns: [Swift.String]? + /// The analysis method for the configured table. The only valid value is currently `DIRECT_QUERY`. + /// This member is required. + public var analysisMethod: CleanRoomsClientTypes.AnalysisMethod? + /// The types of analysis rules associated with this configured table. Valid values are `AGGREGATION` and `LIST`. Currently, only one analysis rule may be associated with a configured table. + /// This member is required. + public var analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? + /// The unique ARN for the configured table. + /// This member is required. + public var arn: Swift.String? + /// The time the configured table was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// A description for the configured table. + public var description: Swift.String? + /// The unique ID for the configured table. + /// This member is required. + public var id: Swift.String? + /// A name for the configured table. + /// This member is required. + public var name: Swift.String? + /// The AWS Glue table that this configured table represents. + /// This member is required. + public var tableReference: CleanRoomsClientTypes.TableReference? + /// The time the configured table was last updated + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + allowedColumns: [Swift.String]? = nil, + analysisMethod: CleanRoomsClientTypes.AnalysisMethod? = nil, + analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? = nil, + arn: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil, + tableReference: CleanRoomsClientTypes.TableReference? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.allowedColumns = allowedColumns + self.analysisMethod = analysisMethod + self.analysisRuleTypes = analysisRuleTypes + self.arn = arn + self.createTime = createTime + self.description = description + self.id = id + self.name = name + self.tableReference = tableReference + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.ConfiguredTableAnalysisRule: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableArn + case configuredTableId + case createTime + case policy + case type + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let configuredTableArn = self.configuredTableArn { + try encodeContainer.encode(configuredTableArn, forKey: .configuredTableArn) + } + if let configuredTableId = self.configuredTableId { + try encodeContainer.encode(configuredTableId, forKey: .configuredTableId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let policy = self.policy { + try encodeContainer.encode(policy, forKey: .policy) + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableId) + configuredTableId = configuredTableIdDecoded + let configuredTableArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableArn) + configuredTableArn = configuredTableArnDecoded + let policyDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy.self, forKey: .policy) + policy = policyDecoded + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType.self, forKey: .type) + type = typeDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + } +} + +extension CleanRoomsClientTypes { + /// A configured table analysis rule, which limits how data for this table can be used. + public struct ConfiguredTableAnalysisRule: Swift.Equatable { + /// The unique ARN for the configured table. + /// This member is required. + public var configuredTableArn: Swift.String? + /// The unique ID for the configured table. + /// This member is required. + public var configuredTableId: Swift.String? + /// The time the configured table analysis rule was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The policy that controls SQL query rules. + /// This member is required. + public var policy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? + /// The type of configured table analysis rule. Valid values are `AGGREGATION` and `LIST`. + /// This member is required. + public var type: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + /// The time the configured table analysis rule was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + configuredTableArn: Swift.String? = nil, + configuredTableId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + policy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? = nil, + type: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.configuredTableArn = configuredTableArn + self.configuredTableId = configuredTableId + self.createTime = createTime + self.policy = policy + self.type = type + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case sdkUnknown + case v1 + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .v1(v1): + try container.encode(v1, forKey: .v1) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let v1Decoded = try values.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicyV1.self, forKey: .v1) + if let v1 = v1Decoded { + self = .v1(v1) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Controls on the query specifications that can be run on a configured table. + public enum ConfiguredTableAnalysisRulePolicy: Swift.Equatable { + /// Controls on the query specifications that can be run on a configured table. + case v1(CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicyV1) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicyV1: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case aggregation + case list + case sdkUnknown + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .aggregation(aggregation): + try container.encode(aggregation, forKey: .aggregation) + case let .list(list): + try container.encode(list, forKey: .list) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let listDecoded = try values.decodeIfPresent(CleanRoomsClientTypes.AnalysisRuleList.self, forKey: .list) + if let list = listDecoded { + self = .list(list) + return + } + let aggregationDecoded = try values.decodeIfPresent(CleanRoomsClientTypes.AnalysisRuleAggregation.self, forKey: .aggregation) + if let aggregation = aggregationDecoded { + self = .aggregation(aggregation) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Controls on the query specifications that can be run on a configured table. + public enum ConfiguredTableAnalysisRulePolicyV1: Swift.Equatable { + /// Analysis rule type that enables only list queries on a configured table. + case list(CleanRoomsClientTypes.AnalysisRuleList) + /// Analysis rule type that enables only aggregation queries on a configured table. + case aggregation(CleanRoomsClientTypes.AnalysisRuleAggregation) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes { + public enum ConfiguredTableAnalysisRuleType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case aggregation + case list + case sdkUnknown(Swift.String) + + public static var allCases: [ConfiguredTableAnalysisRuleType] { + return [ + .aggregation, + .list, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .aggregation: return "AGGREGATION" + case .list: return "LIST" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ConfiguredTableAnalysisRuleType(rawValue: rawValue) ?? ConfiguredTableAnalysisRuleType.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociation: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case configuredTableArn + case configuredTableId + case createTime + case description + case id + case membershipArn + case membershipId + case name + case roleArn + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let configuredTableArn = self.configuredTableArn { + try encodeContainer.encode(configuredTableArn, forKey: .configuredTableArn) + } + if let configuredTableId = self.configuredTableId { + try encodeContainer.encode(configuredTableId, forKey: .configuredTableId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let roleArn = self.roleArn { + try encodeContainer.encode(roleArn, forKey: .roleArn) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let configuredTableIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableId) + configuredTableId = configuredTableIdDecoded + let configuredTableArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableArn) + configuredTableArn = configuredTableArnDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + let roleArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .roleArn) + roleArn = roleArnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + } +} + +extension CleanRoomsClientTypes { + /// A configured table association links a configured table to a collaboration. + public struct ConfiguredTableAssociation: Swift.Equatable { + /// The unique ARN for the configured table association. + /// This member is required. + public var arn: Swift.String? + /// The unique ARN for the configured table that the association refers to. + /// This member is required. + public var configuredTableArn: Swift.String? + /// The unique ID for the configured table that the association refers to. + /// This member is required. + public var configuredTableId: Swift.String? + /// The time the configured table association was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// A description of the configured table association. + public var description: Swift.String? + /// The unique ID for the configured table association. + /// This member is required. + public var id: Swift.String? + /// The unique ARN for the membership this configured table association belongs to. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique ID for the membership this configured table association belongs to. + /// This member is required. + public var membershipId: Swift.String? + /// The name of the configured table association, in lowercase. The table is identified by this name when running protected queries against the underlying data. + /// This member is required. + public var name: Swift.String? + /// The service will assume this role to access catalog metadata and query the table. + /// This member is required. + public var roleArn: Swift.String? + /// The time the configured table association was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + configuredTableArn: Swift.String? = nil, + configuredTableId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + roleArn: Swift.String? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.configuredTableArn = configuredTableArn + self.configuredTableId = configuredTableId + self.createTime = createTime + self.description = description + self.id = id + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.roleArn = roleArn + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case configuredTableId + case createTime + case id + case membershipArn + case membershipId + case name + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let configuredTableId = self.configuredTableId { + try encodeContainer.encode(configuredTableId, forKey: .configuredTableId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableId) + configuredTableId = configuredTableIdDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + } +} + +extension CleanRoomsClientTypes { + /// The configured table association summary for the objects listed by the request. + public struct ConfiguredTableAssociationSummary: Swift.Equatable { + /// The unique ARN for the configured table association. + /// This member is required. + public var arn: Swift.String? + /// The unique configured table ID that this configured table association refers to. + /// This member is required. + public var configuredTableId: Swift.String? + /// The time the configured table association was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique ID for the configured table association. + /// This member is required. + public var id: Swift.String? + /// The unique ARN for the membership that the configured table association belongs to. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique ID for the membership that the configured table association belongs to. + /// This member is required. + public var membershipId: Swift.String? + /// The name of the configured table association. The table is identified by this name when running Protected Queries against the underlying data. + /// This member is required. + public var name: Swift.String? + /// The time the configured table association was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + configuredTableId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.configuredTableId = configuredTableId + self.createTime = createTime + self.id = id + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.ConfiguredTableSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisMethod + case analysisRuleTypes + case arn + case createTime + case id + case name + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let analysisMethod = self.analysisMethod { + try encodeContainer.encode(analysisMethod.rawValue, forKey: .analysisMethod) + } + if let analysisRuleTypes = analysisRuleTypes { + var analysisRuleTypesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .analysisRuleTypes) + for configuredtableanalysisruletype0 in analysisRuleTypes { + try analysisRuleTypesContainer.encode(configuredtableanalysisruletype0.rawValue) + } + } + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let analysisRuleTypesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType?].self, forKey: .analysisRuleTypes) + var analysisRuleTypesDecoded0:[CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? = nil + if let analysisRuleTypesContainer = analysisRuleTypesContainer { + analysisRuleTypesDecoded0 = [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]() + for enum0 in analysisRuleTypesContainer { + if let enum0 = enum0 { + analysisRuleTypesDecoded0?.append(enum0) + } + } + } + analysisRuleTypes = analysisRuleTypesDecoded0 + let analysisMethodDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisMethod.self, forKey: .analysisMethod) + analysisMethod = analysisMethodDecoded + } +} + +extension CleanRoomsClientTypes { + /// The configured table summary for the objects listed by the request. + public struct ConfiguredTableSummary: Swift.Equatable { + /// The analysis method for the configured tables. The only valid value is currently `DIRECT_QUERY`. + /// This member is required. + public var analysisMethod: CleanRoomsClientTypes.AnalysisMethod? + /// The types of analysis rules associated with this configured table. + /// This member is required. + public var analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? + /// The unique ARN of the configured table. + /// This member is required. + public var arn: Swift.String? + /// The time the configured table was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique ID of the configured table. + /// This member is required. + public var id: Swift.String? + /// The name of the configured table. + /// This member is required. + public var name: Swift.String? + /// The time the configured table was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + analysisMethod: CleanRoomsClientTypes.AnalysisMethod? = nil, + analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType]? = nil, + arn: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.analysisMethod = analysisMethod + self.analysisRuleTypes = analysisRuleTypes + self.arn = arn + self.createTime = createTime + self.id = id + self.name = name + self.updateTime = updateTime + } + } + +} + +extension ConflictException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ConflictExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + self.reason = output.reason + self.resourceId = output.resourceId + self.resourceType = output.resourceType + } else { + self.message = nil + self.reason = nil + self.resourceId = nil + self.resourceType = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Updating or deleting a resource can cause an inconsistent state. +public struct ConflictException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + /// A reason code for the exception. + public var reason: CleanRoomsClientTypes.ConflictExceptionReason? + /// The ID of the conflicting resource. + public var resourceId: Swift.String? + /// The type of the conflicting resource. + public var resourceType: CleanRoomsClientTypes.ResourceType? + + public init ( + message: Swift.String? = nil, + reason: CleanRoomsClientTypes.ConflictExceptionReason? = nil, + resourceId: Swift.String? = nil, + resourceType: CleanRoomsClientTypes.ResourceType? = nil + ) + { + self.message = message + self.reason = reason + self.resourceId = resourceId + self.resourceType = resourceType + } +} + +struct ConflictExceptionBody: Swift.Equatable { + let message: Swift.String? + let resourceId: Swift.String? + let resourceType: CleanRoomsClientTypes.ResourceType? + let reason: CleanRoomsClientTypes.ConflictExceptionReason? +} + +extension ConflictExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + case reason + case resourceId + case resourceType + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let resourceIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceId) + resourceId = resourceIdDecoded + let resourceTypeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ResourceType.self, forKey: .resourceType) + resourceType = resourceTypeDecoded + let reasonDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConflictExceptionReason.self, forKey: .reason) + reason = reasonDecoded + } +} + +extension CleanRoomsClientTypes { + public enum ConflictExceptionReason: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case alreadyExists + case invalidState + case subresourcesExist + case sdkUnknown(Swift.String) + + public static var allCases: [ConflictExceptionReason] { + return [ + .alreadyExists, + .invalidState, + .subresourcesExist, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .alreadyExists: return "ALREADY_EXISTS" + case .invalidState: return "INVALID_STATE" + case .subresourcesExist: return "SUBRESOURCES_EXIST" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ConflictExceptionReason(rawValue: rawValue) ?? ConflictExceptionReason.sdkUnknown(rawValue) + } + } +} + +extension CreateCollaborationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case creatorDisplayName + case creatorMemberAbilities + case dataEncryptionMetadata + case description + case members + case name + case queryLogStatus + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let creatorDisplayName = self.creatorDisplayName { + try encodeContainer.encode(creatorDisplayName, forKey: .creatorDisplayName) + } + if let creatorMemberAbilities = creatorMemberAbilities { + var creatorMemberAbilitiesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .creatorMemberAbilities) + for memberability0 in creatorMemberAbilities { + try creatorMemberAbilitiesContainer.encode(memberability0.rawValue) + } + } + if let dataEncryptionMetadata = self.dataEncryptionMetadata { + try encodeContainer.encode(dataEncryptionMetadata, forKey: .dataEncryptionMetadata) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let members = members { + var membersContainer = encodeContainer.nestedUnkeyedContainer(forKey: .members) + for memberspecification0 in members { + try membersContainer.encode(memberspecification0) + } + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let queryLogStatus = self.queryLogStatus { + try encodeContainer.encode(queryLogStatus.rawValue, forKey: .queryLogStatus) + } + } +} + +extension CreateCollaborationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/collaborations" + } +} + +public struct CreateCollaborationInput: Swift.Equatable { + /// The display name of the collaboration creator. + /// This member is required. + public var creatorDisplayName: Swift.String? + /// The abilities granted to the collaboration creator. + /// This member is required. + public var creatorMemberAbilities: [CleanRoomsClientTypes.MemberAbility]? + /// The settings for client-side encryption with Cryptographic Computing for Clean Rooms. + public var dataEncryptionMetadata: CleanRoomsClientTypes.DataEncryptionMetadata? + /// A description of the collaboration provided by the collaboration owner. + /// This member is required. + public var description: Swift.String? + /// A list of initial members, not including the creator. This list is immutable. + /// This member is required. + public var members: [CleanRoomsClientTypes.MemberSpecification]? + /// The display name for a collaboration. + /// This member is required. + public var name: Swift.String? + /// An indicator as to whether query logging has been enabled or disabled for the collaboration. + /// This member is required. + public var queryLogStatus: CleanRoomsClientTypes.CollaborationQueryLogStatus? + + public init ( + creatorDisplayName: Swift.String? = nil, + creatorMemberAbilities: [CleanRoomsClientTypes.MemberAbility]? = nil, + dataEncryptionMetadata: CleanRoomsClientTypes.DataEncryptionMetadata? = nil, + description: Swift.String? = nil, + members: [CleanRoomsClientTypes.MemberSpecification]? = nil, + name: Swift.String? = nil, + queryLogStatus: CleanRoomsClientTypes.CollaborationQueryLogStatus? = nil + ) + { + self.creatorDisplayName = creatorDisplayName + self.creatorMemberAbilities = creatorMemberAbilities + self.dataEncryptionMetadata = dataEncryptionMetadata + self.description = description + self.members = members + self.name = name + self.queryLogStatus = queryLogStatus + } +} + +struct CreateCollaborationInputBody: Swift.Equatable { + let members: [CleanRoomsClientTypes.MemberSpecification]? + let name: Swift.String? + let description: Swift.String? + let creatorMemberAbilities: [CleanRoomsClientTypes.MemberAbility]? + let creatorDisplayName: Swift.String? + let dataEncryptionMetadata: CleanRoomsClientTypes.DataEncryptionMetadata? + let queryLogStatus: CleanRoomsClientTypes.CollaborationQueryLogStatus? +} + +extension CreateCollaborationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case creatorDisplayName + case creatorMemberAbilities + case dataEncryptionMetadata + case description + case members + case name + case queryLogStatus + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let membersContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberSpecification?].self, forKey: .members) + var membersDecoded0:[CleanRoomsClientTypes.MemberSpecification]? = nil + if let membersContainer = membersContainer { + membersDecoded0 = [CleanRoomsClientTypes.MemberSpecification]() + for structure0 in membersContainer { + if let structure0 = structure0 { + membersDecoded0?.append(structure0) + } + } + } + members = membersDecoded0 + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let creatorMemberAbilitiesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberAbility?].self, forKey: .creatorMemberAbilities) + var creatorMemberAbilitiesDecoded0:[CleanRoomsClientTypes.MemberAbility]? = nil + if let creatorMemberAbilitiesContainer = creatorMemberAbilitiesContainer { + creatorMemberAbilitiesDecoded0 = [CleanRoomsClientTypes.MemberAbility]() + for string0 in creatorMemberAbilitiesContainer { + if let string0 = string0 { + creatorMemberAbilitiesDecoded0?.append(string0) + } + } + } + creatorMemberAbilities = creatorMemberAbilitiesDecoded0 + let creatorDisplayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorDisplayName) + creatorDisplayName = creatorDisplayNameDecoded + let dataEncryptionMetadataDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.DataEncryptionMetadata.self, forKey: .dataEncryptionMetadata) + dataEncryptionMetadata = dataEncryptionMetadataDecoded + let queryLogStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.CollaborationQueryLogStatus.self, forKey: .queryLogStatus) + queryLogStatus = queryLogStatusDecoded + } +} + +extension CreateCollaborationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateCollaborationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateCollaborationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateCollaborationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateCollaborationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.collaboration = output.collaboration + } else { + self.collaboration = nil + } + } +} + +public struct CreateCollaborationOutputResponse: Swift.Equatable { + /// The entire created collaboration object. + /// This member is required. + public var collaboration: CleanRoomsClientTypes.Collaboration? + + public init ( + collaboration: CleanRoomsClientTypes.Collaboration? = nil + ) + { + self.collaboration = collaboration + } +} + +struct CreateCollaborationOutputResponseBody: Swift.Equatable { + let collaboration: CleanRoomsClientTypes.Collaboration? +} + +extension CreateCollaborationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaboration + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let collaborationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Collaboration.self, forKey: .collaboration) + collaboration = collaborationDecoded + } +} + +extension CreateConfiguredTableAnalysisRuleInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRulePolicy + case analysisRuleType + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let analysisRulePolicy = self.analysisRulePolicy { + try encodeContainer.encode(analysisRulePolicy, forKey: .analysisRulePolicy) + } + if let analysisRuleType = self.analysisRuleType { + try encodeContainer.encode(analysisRuleType.rawValue, forKey: .analysisRuleType) + } + } +} + +extension CreateConfiguredTableAnalysisRuleInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())/analysisRule" + } +} + +public struct CreateConfiguredTableAnalysisRuleInput: Swift.Equatable { + /// The entire created configured table analysis rule object. + /// This member is required. + public var analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? + /// The type of analysis rule. Valid values are AGGREGATION and LIST. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + /// The identifier for the configured table to create the analysis rule for. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? = nil, + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? = nil, + configuredTableIdentifier: Swift.String? = nil + ) + { + self.analysisRulePolicy = analysisRulePolicy + self.analysisRuleType = analysisRuleType + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct CreateConfiguredTableAnalysisRuleInputBody: Swift.Equatable { + let analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + let analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? +} + +extension CreateConfiguredTableAnalysisRuleInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRulePolicy + case analysisRuleType + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRuleTypeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType.self, forKey: .analysisRuleType) + analysisRuleType = analysisRuleTypeDecoded + let analysisRulePolicyDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy.self, forKey: .analysisRulePolicy) + analysisRulePolicy = analysisRulePolicyDecoded + } +} + +extension CreateConfiguredTableAnalysisRuleOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateConfiguredTableAnalysisRuleOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateConfiguredTableAnalysisRuleOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateConfiguredTableAnalysisRuleOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateConfiguredTableAnalysisRuleOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.analysisRule = output.analysisRule + } else { + self.analysisRule = nil + } + } +} + +public struct CreateConfiguredTableAnalysisRuleOutputResponse: Swift.Equatable { + /// The entire created analysis rule. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? + + public init ( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +struct CreateConfiguredTableAnalysisRuleOutputResponseBody: Swift.Equatable { + let analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? +} + +extension CreateConfiguredTableAnalysisRuleOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRule + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRuleDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRule.self, forKey: .analysisRule) + analysisRule = analysisRuleDecoded + } +} + +extension CreateConfiguredTableAssociationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableIdentifier + case description + case name + case roleArn + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let configuredTableIdentifier = self.configuredTableIdentifier { + try encodeContainer.encode(configuredTableIdentifier, forKey: .configuredTableIdentifier) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let roleArn = self.roleArn { + try encodeContainer.encode(roleArn, forKey: .roleArn) + } + } +} + +extension CreateConfiguredTableAssociationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations" + } +} + +public struct CreateConfiguredTableAssociationInput: Swift.Equatable { + /// A unique identifier for the configured table to be associated to. Currently accepts a configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + /// A description for the configured table association. + public var description: Swift.String? + /// A unique identifier for one of your memberships for a collaboration. The configured table is associated to the collaboration that this membership belongs to. Currently accepts a membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The name of the configured table association. This name is used to query the underlying configured table. + /// This member is required. + public var name: Swift.String? + /// The service will assume this role to access catalog metadata and query the table. + /// This member is required. + public var roleArn: Swift.String? + + public init ( + configuredTableIdentifier: Swift.String? = nil, + description: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil, + name: Swift.String? = nil, + roleArn: Swift.String? = nil + ) + { + self.configuredTableIdentifier = configuredTableIdentifier + self.description = description + self.membershipIdentifier = membershipIdentifier + self.name = name + self.roleArn = roleArn + } +} + +struct CreateConfiguredTableAssociationInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? + let configuredTableIdentifier: Swift.String? + let roleArn: Swift.String? +} + +extension CreateConfiguredTableAssociationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableIdentifier + case description + case name + case roleArn + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let configuredTableIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .configuredTableIdentifier) + configuredTableIdentifier = configuredTableIdentifierDecoded + let roleArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .roleArn) + roleArn = roleArnDecoded + } +} + +extension CreateConfiguredTableAssociationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateConfiguredTableAssociationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateConfiguredTableAssociationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateConfiguredTableAssociationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateConfiguredTableAssociationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTableAssociation = output.configuredTableAssociation + } else { + self.configuredTableAssociation = nil + } + } +} + +public struct CreateConfiguredTableAssociationOutputResponse: Swift.Equatable { + /// The entire configured table association object. + /// This member is required. + public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? + + public init ( + configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? = nil + ) + { + self.configuredTableAssociation = configuredTableAssociation + } +} + +struct CreateConfiguredTableAssociationOutputResponseBody: Swift.Equatable { + let configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? +} + +extension CreateConfiguredTableAssociationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableAssociation + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableAssociationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAssociation.self, forKey: .configuredTableAssociation) + configuredTableAssociation = configuredTableAssociationDecoded + } +} + +extension CreateConfiguredTableInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case allowedColumns + case analysisMethod + case description + case name + case tableReference + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let allowedColumns = allowedColumns { + var allowedColumnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .allowedColumns) + for columnname0 in allowedColumns { + try allowedColumnsContainer.encode(columnname0) + } + } + if let analysisMethod = self.analysisMethod { + try encodeContainer.encode(analysisMethod.rawValue, forKey: .analysisMethod) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let tableReference = self.tableReference { + try encodeContainer.encode(tableReference, forKey: .tableReference) + } + } +} + +extension CreateConfiguredTableInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/configuredTables" + } +} + +public struct CreateConfiguredTableInput: Swift.Equatable { + /// The columns of the underlying table that can be used by collaborations or analysis rules. + /// This member is required. + public var allowedColumns: [Swift.String]? + /// The analysis method for the configured tables. The only valid value is currently `DIRECT_QUERY`. + /// This member is required. + public var analysisMethod: CleanRoomsClientTypes.AnalysisMethod? + /// A description for the configured table. + public var description: Swift.String? + /// The name of the configured table. + /// This member is required. + public var name: Swift.String? + /// A reference to the AWS Glue table being configured. + /// This member is required. + public var tableReference: CleanRoomsClientTypes.TableReference? + + public init ( + allowedColumns: [Swift.String]? = nil, + analysisMethod: CleanRoomsClientTypes.AnalysisMethod? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + tableReference: CleanRoomsClientTypes.TableReference? = nil + ) + { + self.allowedColumns = allowedColumns + self.analysisMethod = analysisMethod + self.description = description + self.name = name + self.tableReference = tableReference + } +} + +struct CreateConfiguredTableInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? + let tableReference: CleanRoomsClientTypes.TableReference? + let allowedColumns: [Swift.String]? + let analysisMethod: CleanRoomsClientTypes.AnalysisMethod? +} + +extension CreateConfiguredTableInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case allowedColumns + case analysisMethod + case description + case name + case tableReference + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let tableReferenceDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.TableReference.self, forKey: .tableReference) + tableReference = tableReferenceDecoded + let allowedColumnsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .allowedColumns) + var allowedColumnsDecoded0:[Swift.String]? = nil + if let allowedColumnsContainer = allowedColumnsContainer { + allowedColumnsDecoded0 = [Swift.String]() + for string0 in allowedColumnsContainer { + if let string0 = string0 { + allowedColumnsDecoded0?.append(string0) + } + } + } + allowedColumns = allowedColumnsDecoded0 + let analysisMethodDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisMethod.self, forKey: .analysisMethod) + analysisMethod = analysisMethodDecoded + } +} + +extension CreateConfiguredTableOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateConfiguredTableOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateConfiguredTableOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateConfiguredTableOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateConfiguredTableOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTable = output.configuredTable + } else { + self.configuredTable = nil + } + } +} + +public struct CreateConfiguredTableOutputResponse: Swift.Equatable { + /// The created configured table. + /// This member is required. + public var configuredTable: CleanRoomsClientTypes.ConfiguredTable? + + public init ( + configuredTable: CleanRoomsClientTypes.ConfiguredTable? = nil + ) + { + self.configuredTable = configuredTable + } +} + +struct CreateConfiguredTableOutputResponseBody: Swift.Equatable { + let configuredTable: CleanRoomsClientTypes.ConfiguredTable? +} + +extension CreateConfiguredTableOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTable + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTable.self, forKey: .configuredTable) + configuredTable = configuredTableDecoded + } +} + +extension CreateMembershipInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaborationIdentifier + case queryLogStatus + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let collaborationIdentifier = self.collaborationIdentifier { + try encodeContainer.encode(collaborationIdentifier, forKey: .collaborationIdentifier) + } + if let queryLogStatus = self.queryLogStatus { + try encodeContainer.encode(queryLogStatus.rawValue, forKey: .queryLogStatus) + } + } +} + +extension CreateMembershipInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/memberships" + } +} + +public struct CreateMembershipInput: Swift.Equatable { + /// The unique ID for the associated collaboration. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// An indicator as to whether query logging has been enabled or disabled for the collaboration. + /// This member is required. + public var queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? + + public init ( + collaborationIdentifier: Swift.String? = nil, + queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.queryLogStatus = queryLogStatus + } +} + +struct CreateMembershipInputBody: Swift.Equatable { + let collaborationIdentifier: Swift.String? + let queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? +} + +extension CreateMembershipInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaborationIdentifier + case queryLogStatus + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let collaborationIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationIdentifier) + collaborationIdentifier = collaborationIdentifierDecoded + let queryLogStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MembershipQueryLogStatus.self, forKey: .queryLogStatus) + queryLogStatus = queryLogStatusDecoded + } +} + +extension CreateMembershipOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateMembershipOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateMembershipOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateMembershipOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateMembershipOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.membership = output.membership + } else { + self.membership = nil + } + } +} + +public struct CreateMembershipOutputResponse: Swift.Equatable { + /// The membership that was created. + /// This member is required. + public var membership: CleanRoomsClientTypes.Membership? + + public init ( + membership: CleanRoomsClientTypes.Membership? = nil + ) + { + self.membership = membership + } +} + +struct CreateMembershipOutputResponseBody: Swift.Equatable { + let membership: CleanRoomsClientTypes.Membership? +} + +extension CreateMembershipOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case membership + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let membershipDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Membership.self, forKey: .membership) + membership = membershipDecoded + } +} + +extension CleanRoomsClientTypes.DataEncryptionMetadata: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case allowCleartext + case allowDuplicates + case allowJoinsOnColumnsWithDifferentNames + case preserveNulls + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let allowCleartext = self.allowCleartext { + try encodeContainer.encode(allowCleartext, forKey: .allowCleartext) + } + if let allowDuplicates = self.allowDuplicates { + try encodeContainer.encode(allowDuplicates, forKey: .allowDuplicates) + } + if let allowJoinsOnColumnsWithDifferentNames = self.allowJoinsOnColumnsWithDifferentNames { + try encodeContainer.encode(allowJoinsOnColumnsWithDifferentNames, forKey: .allowJoinsOnColumnsWithDifferentNames) + } + if let preserveNulls = self.preserveNulls { + try encodeContainer.encode(preserveNulls, forKey: .preserveNulls) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let allowCleartextDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowCleartext) + allowCleartext = allowCleartextDecoded + let allowDuplicatesDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowDuplicates) + allowDuplicates = allowDuplicatesDecoded + let allowJoinsOnColumnsWithDifferentNamesDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowJoinsOnColumnsWithDifferentNames) + allowJoinsOnColumnsWithDifferentNames = allowJoinsOnColumnsWithDifferentNamesDecoded + let preserveNullsDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .preserveNulls) + preserveNulls = preserveNullsDecoded + } +} + +extension CleanRoomsClientTypes { + /// The settings for client-side encryption for cryptographic computing. + public struct DataEncryptionMetadata: Swift.Equatable { + /// Indicates whether encrypted tables can contain cleartext data (true) or are to cryptographically process every column (false). + /// This member is required. + public var allowCleartext: Swift.Bool? + /// Indicates whether Fingerprint columns can contain duplicate entries (true) or are to contain only non-repeated values (false). + /// This member is required. + public var allowDuplicates: Swift.Bool? + /// Indicates whether Fingerprint columns can be joined on any other Fingerprint column with a different name (true) or can only be joined on Fingerprint columns of the same name (false). + /// This member is required. + public var allowJoinsOnColumnsWithDifferentNames: Swift.Bool? + /// Indicates whether NULL values are to be copied as NULL to encrypted tables (true) or cryptographically processed (false). + /// This member is required. + public var preserveNulls: Swift.Bool? + + public init ( + allowCleartext: Swift.Bool? = nil, + allowDuplicates: Swift.Bool? = nil, + allowJoinsOnColumnsWithDifferentNames: Swift.Bool? = nil, + preserveNulls: Swift.Bool? = nil + ) + { + self.allowCleartext = allowCleartext + self.allowDuplicates = allowDuplicates + self.allowJoinsOnColumnsWithDifferentNames = allowJoinsOnColumnsWithDifferentNames + self.preserveNulls = preserveNulls + } + } + +} + +extension DeleteCollaborationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())" + } +} + +public struct DeleteCollaborationInput: Swift.Equatable { + /// The identifier for the collaboration. + /// This member is required. + public var collaborationIdentifier: Swift.String? + + public init ( + collaborationIdentifier: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + } +} + +struct DeleteCollaborationInputBody: Swift.Equatable { +} + +extension DeleteCollaborationInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteCollaborationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteCollaborationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteCollaborationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteCollaborationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct DeleteCollaborationOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DeleteConfiguredTableAnalysisRuleInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + guard let analysisRuleType = analysisRuleType else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +public struct DeleteConfiguredTableAnalysisRuleInput: Swift.Equatable { + /// The analysis rule type to be deleted. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + /// The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? = nil, + configuredTableIdentifier: Swift.String? = nil + ) + { + self.analysisRuleType = analysisRuleType + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct DeleteConfiguredTableAnalysisRuleInputBody: Swift.Equatable { +} + +extension DeleteConfiguredTableAnalysisRuleInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteConfiguredTableAnalysisRuleOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteConfiguredTableAnalysisRuleOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteConfiguredTableAnalysisRuleOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteConfiguredTableAnalysisRuleOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +/// An empty response that indicates a successful delete. +public struct DeleteConfiguredTableAnalysisRuleOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DeleteConfiguredTableAssociationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = configuredTableAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())" + } +} + +public struct DeleteConfiguredTableAssociationInput: Swift.Equatable { + /// The unique ID for the configured table association to be deleted. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init ( + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +struct DeleteConfiguredTableAssociationInputBody: Swift.Equatable { +} + +extension DeleteConfiguredTableAssociationInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteConfiguredTableAssociationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteConfiguredTableAssociationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteConfiguredTableAssociationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteConfiguredTableAssociationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct DeleteConfiguredTableAssociationOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DeleteConfiguredTableInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())" + } +} + +public struct DeleteConfiguredTableInput: Swift.Equatable { + /// The unique ID for the configured table to delete. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + configuredTableIdentifier: Swift.String? = nil + ) + { + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct DeleteConfiguredTableInputBody: Swift.Equatable { +} + +extension DeleteConfiguredTableInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteConfiguredTableOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteConfiguredTableOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteConfiguredTableOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteConfiguredTableOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +/// The empty output for a successful deletion. +public struct DeleteConfiguredTableOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DeleteMemberInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + guard let accountId = accountId else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/member/\(accountId.urlPercentEncoding())" + } +} + +public struct DeleteMemberInput: Swift.Equatable { + /// The account ID of the member to remove. + /// This member is required. + public var accountId: Swift.String? + /// The unique identifier for the associated collaboration. + /// This member is required. + public var collaborationIdentifier: Swift.String? + + public init ( + accountId: Swift.String? = nil, + collaborationIdentifier: Swift.String? = nil + ) + { + self.accountId = accountId + self.collaborationIdentifier = collaborationIdentifier + } +} + +struct DeleteMemberInputBody: Swift.Equatable { +} + +extension DeleteMemberInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteMemberOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteMemberOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteMemberOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteMemberOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct DeleteMemberOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DeleteMembershipInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())" + } +} + +public struct DeleteMembershipInput: Swift.Equatable { + /// The identifier for a membership resource. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init ( + membershipIdentifier: Swift.String? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + } +} + +struct DeleteMembershipInputBody: Swift.Equatable { +} + +extension DeleteMembershipInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteMembershipOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteMembershipOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteMembershipOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteMembershipOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct DeleteMembershipOutputResponse: Swift.Equatable { + + public init () { } +} + +extension CleanRoomsClientTypes { + public enum FilterableMemberStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case invited + case sdkUnknown(Swift.String) + + public static var allCases: [FilterableMemberStatus] { + return [ + .active, + .invited, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .invited: return "INVITED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = FilterableMemberStatus(rawValue: rawValue) ?? FilterableMemberStatus.sdkUnknown(rawValue) + } + } +} + +extension GetCollaborationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())" + } +} + +public struct GetCollaborationInput: Swift.Equatable { + /// The identifier for the collaboration. + /// This member is required. + public var collaborationIdentifier: Swift.String? + + public init ( + collaborationIdentifier: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + } +} + +struct GetCollaborationInputBody: Swift.Equatable { +} + +extension GetCollaborationInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetCollaborationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetCollaborationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetCollaborationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetCollaborationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetCollaborationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.collaboration = output.collaboration + } else { + self.collaboration = nil + } + } +} + +public struct GetCollaborationOutputResponse: Swift.Equatable { + /// The entire collaboration for this identifier. + /// This member is required. + public var collaboration: CleanRoomsClientTypes.Collaboration? + + public init ( + collaboration: CleanRoomsClientTypes.Collaboration? = nil + ) + { + self.collaboration = collaboration + } +} + +struct GetCollaborationOutputResponseBody: Swift.Equatable { + let collaboration: CleanRoomsClientTypes.Collaboration? +} + +extension GetCollaborationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaboration + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let collaborationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Collaboration.self, forKey: .collaboration) + collaboration = collaborationDecoded + } +} + +extension GetConfiguredTableAnalysisRuleInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + guard let analysisRuleType = analysisRuleType else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +public struct GetConfiguredTableAnalysisRuleInput: Swift.Equatable { + /// The analysis rule to be retrieved. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + /// The unique identifier for the configured table to retrieve. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? = nil, + configuredTableIdentifier: Swift.String? = nil + ) + { + self.analysisRuleType = analysisRuleType + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct GetConfiguredTableAnalysisRuleInputBody: Swift.Equatable { +} + +extension GetConfiguredTableAnalysisRuleInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetConfiguredTableAnalysisRuleOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetConfiguredTableAnalysisRuleOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetConfiguredTableAnalysisRuleOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetConfiguredTableAnalysisRuleOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetConfiguredTableAnalysisRuleOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.analysisRule = output.analysisRule + } else { + self.analysisRule = nil + } + } +} + +public struct GetConfiguredTableAnalysisRuleOutputResponse: Swift.Equatable { + /// The entire analysis rule output. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? + + public init ( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +struct GetConfiguredTableAnalysisRuleOutputResponseBody: Swift.Equatable { + let analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? +} + +extension GetConfiguredTableAnalysisRuleOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRule + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRuleDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRule.self, forKey: .analysisRule) + analysisRule = analysisRuleDecoded + } +} + +extension GetConfiguredTableAssociationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = configuredTableAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())" + } +} + +public struct GetConfiguredTableAssociationInput: Swift.Equatable { + /// The unique ID for the configured table association to retrieve. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init ( + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +struct GetConfiguredTableAssociationInputBody: Swift.Equatable { +} + +extension GetConfiguredTableAssociationInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetConfiguredTableAssociationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetConfiguredTableAssociationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetConfiguredTableAssociationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetConfiguredTableAssociationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetConfiguredTableAssociationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTableAssociation = output.configuredTableAssociation + } else { + self.configuredTableAssociation = nil + } + } +} + +public struct GetConfiguredTableAssociationOutputResponse: Swift.Equatable { + /// The entire configured table association object. + /// This member is required. + public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? + + public init ( + configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? = nil + ) + { + self.configuredTableAssociation = configuredTableAssociation + } +} + +struct GetConfiguredTableAssociationOutputResponseBody: Swift.Equatable { + let configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? +} + +extension GetConfiguredTableAssociationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableAssociation + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableAssociationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAssociation.self, forKey: .configuredTableAssociation) + configuredTableAssociation = configuredTableAssociationDecoded + } +} + +extension GetConfiguredTableInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())" + } +} + +public struct GetConfiguredTableInput: Swift.Equatable { + /// The unique ID for the configured table to retrieve. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + configuredTableIdentifier: Swift.String? = nil + ) + { + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct GetConfiguredTableInputBody: Swift.Equatable { +} + +extension GetConfiguredTableInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetConfiguredTableOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetConfiguredTableOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetConfiguredTableOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetConfiguredTableOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetConfiguredTableOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTable = output.configuredTable + } else { + self.configuredTable = nil + } + } +} + +public struct GetConfiguredTableOutputResponse: Swift.Equatable { + /// The retrieved configured table. + /// This member is required. + public var configuredTable: CleanRoomsClientTypes.ConfiguredTable? + + public init ( + configuredTable: CleanRoomsClientTypes.ConfiguredTable? = nil + ) + { + self.configuredTable = configuredTable + } +} + +struct GetConfiguredTableOutputResponseBody: Swift.Equatable { + let configuredTable: CleanRoomsClientTypes.ConfiguredTable? +} + +extension GetConfiguredTableOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTable + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTable.self, forKey: .configuredTable) + configuredTable = configuredTableDecoded + } +} + +extension GetMembershipInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())" + } +} + +public struct GetMembershipInput: Swift.Equatable { + /// The identifier for a membership resource. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init ( + membershipIdentifier: Swift.String? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + } +} + +struct GetMembershipInputBody: Swift.Equatable { +} + +extension GetMembershipInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetMembershipOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetMembershipOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetMembershipOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetMembershipOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetMembershipOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.membership = output.membership + } else { + self.membership = nil + } + } +} + +public struct GetMembershipOutputResponse: Swift.Equatable { + /// The membership retrieved for the provided identifier. + /// This member is required. + public var membership: CleanRoomsClientTypes.Membership? + + public init ( + membership: CleanRoomsClientTypes.Membership? = nil + ) + { + self.membership = membership + } +} + +struct GetMembershipOutputResponseBody: Swift.Equatable { + let membership: CleanRoomsClientTypes.Membership? +} + +extension GetMembershipOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case membership + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let membershipDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Membership.self, forKey: .membership) + membership = membershipDecoded + } +} + +extension GetProtectedQueryInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + guard let protectedQueryIdentifier = protectedQueryIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/protectedQueries/\(protectedQueryIdentifier.urlPercentEncoding())" + } +} + +public struct GetProtectedQueryInput: Swift.Equatable { + /// The identifier for a membership in a protected query instance. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The identifier for a protected query instance. + /// This member is required. + public var protectedQueryIdentifier: Swift.String? + + public init ( + membershipIdentifier: Swift.String? = nil, + protectedQueryIdentifier: Swift.String? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + self.protectedQueryIdentifier = protectedQueryIdentifier + } +} + +struct GetProtectedQueryInputBody: Swift.Equatable { +} + +extension GetProtectedQueryInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetProtectedQueryOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetProtectedQueryOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetProtectedQueryOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetProtectedQueryOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetProtectedQueryOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.protectedQuery = output.protectedQuery + } else { + self.protectedQuery = nil + } + } +} + +public struct GetProtectedQueryOutputResponse: Swift.Equatable { + /// The query processing metadata. + /// This member is required. + public var protectedQuery: CleanRoomsClientTypes.ProtectedQuery? + + public init ( + protectedQuery: CleanRoomsClientTypes.ProtectedQuery? = nil + ) + { + self.protectedQuery = protectedQuery + } +} + +struct GetProtectedQueryOutputResponseBody: Swift.Equatable { + let protectedQuery: CleanRoomsClientTypes.ProtectedQuery? +} + +extension GetProtectedQueryOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case protectedQuery + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let protectedQueryDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQuery.self, forKey: .protectedQuery) + protectedQuery = protectedQueryDecoded + } +} + +extension GetSchemaAnalysisRuleInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + guard let name = name else { + return nil + } + guard let type = type else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/schemas/\(name.urlPercentEncoding())/analysisRule/\(type.rawValue.urlPercentEncoding())" + } +} + +public struct GetSchemaAnalysisRuleInput: Swift.Equatable { + /// A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The name of the schema to retrieve the analysis rule for. + /// This member is required. + public var name: Swift.String? + /// The type of the schema analysis rule to retrieve. Schema analysis rules are uniquely identified by a combination of the collaboration, the schema name, and their type. + /// This member is required. + public var type: CleanRoomsClientTypes.AnalysisRuleType? + + public init ( + collaborationIdentifier: Swift.String? = nil, + name: Swift.String? = nil, + type: CleanRoomsClientTypes.AnalysisRuleType? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.name = name + self.type = type + } +} + +struct GetSchemaAnalysisRuleInputBody: Swift.Equatable { +} + +extension GetSchemaAnalysisRuleInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetSchemaAnalysisRuleOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetSchemaAnalysisRuleOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetSchemaAnalysisRuleOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetSchemaAnalysisRuleOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetSchemaAnalysisRuleOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.analysisRule = output.analysisRule + } else { + self.analysisRule = nil + } + } +} + +public struct GetSchemaAnalysisRuleOutputResponse: Swift.Equatable { + /// A specification about how data from the configured table can be used. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.AnalysisRule? + + public init ( + analysisRule: CleanRoomsClientTypes.AnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +struct GetSchemaAnalysisRuleOutputResponseBody: Swift.Equatable { + let analysisRule: CleanRoomsClientTypes.AnalysisRule? +} + +extension GetSchemaAnalysisRuleOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRule + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRuleDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisRule.self, forKey: .analysisRule) + analysisRule = analysisRuleDecoded + } +} + +extension GetSchemaInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + guard let name = name else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/schemas/\(name.urlPercentEncoding())" + } +} + +public struct GetSchemaInput: Swift.Equatable { + /// A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The name of the relation to retrieve the schema for. + /// This member is required. + public var name: Swift.String? + + public init ( + collaborationIdentifier: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.name = name + } +} + +struct GetSchemaInputBody: Swift.Equatable { +} + +extension GetSchemaInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetSchemaOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetSchemaOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetSchemaOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetSchemaOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetSchemaOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.schema = output.schema + } else { + self.schema = nil + } + } +} + +public struct GetSchemaOutputResponse: Swift.Equatable { + /// The entire schema object. + /// This member is required. + public var schema: CleanRoomsClientTypes.Schema? + + public init ( + schema: CleanRoomsClientTypes.Schema? = nil + ) + { + self.schema = schema + } +} + +struct GetSchemaOutputResponseBody: Swift.Equatable { + let schema: CleanRoomsClientTypes.Schema? +} + +extension GetSchemaOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case schema + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let schemaDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Schema.self, forKey: .schema) + schema = schemaDecoded + } +} + +extension CleanRoomsClientTypes.GlueTableReference: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case databaseName + case tableName + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let databaseName = self.databaseName { + try encodeContainer.encode(databaseName, forKey: .databaseName) + } + if let tableName = self.tableName { + try encodeContainer.encode(tableName, forKey: .tableName) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let tableNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .tableName) + tableName = tableNameDecoded + let databaseNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .databaseName) + databaseName = databaseNameDecoded + } +} + +extension CleanRoomsClientTypes { + /// A reference to a table within an AWS Glue data catalog. + public struct GlueTableReference: Swift.Equatable { + /// The name of the database the AWS Glue table belongs to. + /// This member is required. + public var databaseName: Swift.String? + /// The name of the AWS Glue table. + /// This member is required. + public var tableName: Swift.String? + + public init ( + databaseName: Swift.String? = nil, + tableName: Swift.String? = nil + ) + { + self.databaseName = databaseName + self.tableName = tableName + } + } + +} + +extension InternalServerException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: InternalServerExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Unexpected error during processing of request. +public struct InternalServerException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .server + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct InternalServerExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension InternalServerExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension CleanRoomsClientTypes { + public enum JoinRequiredOption: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case queryRunner + case sdkUnknown(Swift.String) + + public static var allCases: [JoinRequiredOption] { + return [ + .queryRunner, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .queryRunner: return "QUERY_RUNNER" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = JoinRequiredOption(rawValue: rawValue) ?? JoinRequiredOption.sdkUnknown(rawValue) + } + } +} + +extension ListCollaborationsInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let memberStatus = memberStatus { + let memberStatusQueryItem = ClientRuntime.URLQueryItem(name: "memberStatus".urlPercentEncoding(), value: Swift.String(memberStatus.rawValue).urlPercentEncoding()) + items.append(memberStatusQueryItem) + } + return items + } + } +} + +extension ListCollaborationsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/collaborations" + } +} + +public struct ListCollaborationsInput: Swift.Equatable { + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met. + public var maxResults: Swift.Int? + /// The caller's status in a collaboration. + public var memberStatus: CleanRoomsClientTypes.FilterableMemberStatus? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + maxResults: Swift.Int? = nil, + memberStatus: CleanRoomsClientTypes.FilterableMemberStatus? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.memberStatus = memberStatus + self.nextToken = nextToken + } +} + +struct ListCollaborationsInputBody: Swift.Equatable { +} + +extension ListCollaborationsInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListCollaborationsOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListCollaborationsOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListCollaborationsOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListCollaborationsOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListCollaborationsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.collaborationList = output.collaborationList + self.nextToken = output.nextToken + } else { + self.collaborationList = nil + self.nextToken = nil + } + } +} + +public struct ListCollaborationsOutputResponse: Swift.Equatable { + /// The list of collaborations. + /// This member is required. + public var collaborationList: [CleanRoomsClientTypes.CollaborationSummary]? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + collaborationList: [CleanRoomsClientTypes.CollaborationSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.collaborationList = collaborationList + self.nextToken = nextToken + } +} + +struct ListCollaborationsOutputResponseBody: Swift.Equatable { + let nextToken: Swift.String? + let collaborationList: [CleanRoomsClientTypes.CollaborationSummary]? +} + +extension ListCollaborationsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaborationList + case nextToken + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + let collaborationListContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.CollaborationSummary?].self, forKey: .collaborationList) + var collaborationListDecoded0:[CleanRoomsClientTypes.CollaborationSummary]? = nil + if let collaborationListContainer = collaborationListContainer { + collaborationListDecoded0 = [CleanRoomsClientTypes.CollaborationSummary]() + for structure0 in collaborationListContainer { + if let structure0 = structure0 { + collaborationListDecoded0?.append(structure0) + } + } + } + collaborationList = collaborationListDecoded0 + } +} + +extension ListConfiguredTableAssociationsInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } + } +} + +extension ListConfiguredTableAssociationsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations" + } +} + +public struct ListConfiguredTableAssociationsInput: Swift.Equatable { + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// A unique identifier for the membership to list configured table associations for. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + maxResults: Swift.Int? = nil, + membershipIdentifier: Swift.String? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.membershipIdentifier = membershipIdentifier + self.nextToken = nextToken + } +} + +struct ListConfiguredTableAssociationsInputBody: Swift.Equatable { +} + +extension ListConfiguredTableAssociationsInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListConfiguredTableAssociationsOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListConfiguredTableAssociationsOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListConfiguredTableAssociationsOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListConfiguredTableAssociationsOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListConfiguredTableAssociationsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTableAssociationSummaries = output.configuredTableAssociationSummaries + self.nextToken = output.nextToken + } else { + self.configuredTableAssociationSummaries = nil + self.nextToken = nil + } + } +} + +public struct ListConfiguredTableAssociationsOutputResponse: Swift.Equatable { + /// The retrieved list of configured table associations. + /// This member is required. + public var configuredTableAssociationSummaries: [CleanRoomsClientTypes.ConfiguredTableAssociationSummary]? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + configuredTableAssociationSummaries: [CleanRoomsClientTypes.ConfiguredTableAssociationSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.configuredTableAssociationSummaries = configuredTableAssociationSummaries + self.nextToken = nextToken + } +} + +struct ListConfiguredTableAssociationsOutputResponseBody: Swift.Equatable { + let configuredTableAssociationSummaries: [CleanRoomsClientTypes.ConfiguredTableAssociationSummary]? + let nextToken: Swift.String? +} + +extension ListConfiguredTableAssociationsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableAssociationSummaries + case nextToken + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableAssociationSummariesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ConfiguredTableAssociationSummary?].self, forKey: .configuredTableAssociationSummaries) + var configuredTableAssociationSummariesDecoded0:[CleanRoomsClientTypes.ConfiguredTableAssociationSummary]? = nil + if let configuredTableAssociationSummariesContainer = configuredTableAssociationSummariesContainer { + configuredTableAssociationSummariesDecoded0 = [CleanRoomsClientTypes.ConfiguredTableAssociationSummary]() + for structure0 in configuredTableAssociationSummariesContainer { + if let structure0 = structure0 { + configuredTableAssociationSummariesDecoded0?.append(structure0) + } + } + } + configuredTableAssociationSummaries = configuredTableAssociationSummariesDecoded0 + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + +extension ListConfiguredTablesInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } + } +} + +extension ListConfiguredTablesInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/configuredTables" + } +} + +public struct ListConfiguredTablesInput: Swift.Equatable { + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +struct ListConfiguredTablesInputBody: Swift.Equatable { +} + +extension ListConfiguredTablesInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListConfiguredTablesOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListConfiguredTablesOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListConfiguredTablesOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListConfiguredTablesOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListConfiguredTablesOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTableSummaries = output.configuredTableSummaries + self.nextToken = output.nextToken + } else { + self.configuredTableSummaries = nil + self.nextToken = nil + } + } +} + +public struct ListConfiguredTablesOutputResponse: Swift.Equatable { + /// The configured tables listed by the request. + /// This member is required. + public var configuredTableSummaries: [CleanRoomsClientTypes.ConfiguredTableSummary]? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + configuredTableSummaries: [CleanRoomsClientTypes.ConfiguredTableSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.configuredTableSummaries = configuredTableSummaries + self.nextToken = nextToken + } +} + +struct ListConfiguredTablesOutputResponseBody: Swift.Equatable { + let configuredTableSummaries: [CleanRoomsClientTypes.ConfiguredTableSummary]? + let nextToken: Swift.String? +} + +extension ListConfiguredTablesOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableSummaries + case nextToken + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableSummariesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ConfiguredTableSummary?].self, forKey: .configuredTableSummaries) + var configuredTableSummariesDecoded0:[CleanRoomsClientTypes.ConfiguredTableSummary]? = nil + if let configuredTableSummariesContainer = configuredTableSummariesContainer { + configuredTableSummariesDecoded0 = [CleanRoomsClientTypes.ConfiguredTableSummary]() + for structure0 in configuredTableSummariesContainer { + if let structure0 = structure0 { + configuredTableSummariesDecoded0?.append(structure0) + } + } + } + configuredTableSummaries = configuredTableSummariesDecoded0 + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + +extension ListMembersInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } + } +} + +extension ListMembersInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/members" + } +} + +public struct ListMembersInput: Swift.Equatable { + /// The identifier of the collaboration in which the members are listed. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + collaborationIdentifier: Swift.String? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +struct ListMembersInputBody: Swift.Equatable { +} + +extension ListMembersInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListMembersOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListMembersOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListMembersOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListMembersOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListMembersOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.memberSummaries = output.memberSummaries + self.nextToken = output.nextToken + } else { + self.memberSummaries = nil + self.nextToken = nil + } + } +} + +public struct ListMembersOutputResponse: Swift.Equatable { + /// The list of members returned by the ListMembers operation. + /// This member is required. + public var memberSummaries: [CleanRoomsClientTypes.MemberSummary]? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + memberSummaries: [CleanRoomsClientTypes.MemberSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.memberSummaries = memberSummaries + self.nextToken = nextToken + } +} + +struct ListMembersOutputResponseBody: Swift.Equatable { + let nextToken: Swift.String? + let memberSummaries: [CleanRoomsClientTypes.MemberSummary]? +} + +extension ListMembersOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case memberSummaries + case nextToken + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + let memberSummariesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberSummary?].self, forKey: .memberSummaries) + var memberSummariesDecoded0:[CleanRoomsClientTypes.MemberSummary]? = nil + if let memberSummariesContainer = memberSummariesContainer { + memberSummariesDecoded0 = [CleanRoomsClientTypes.MemberSummary]() + for structure0 in memberSummariesContainer { + if let structure0 = structure0 { + memberSummariesDecoded0?.append(structure0) + } + } + } + memberSummaries = memberSummariesDecoded0 + } +} + +extension ListMembershipsInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let status = status { + let statusQueryItem = ClientRuntime.URLQueryItem(name: "status".urlPercentEncoding(), value: Swift.String(status.rawValue).urlPercentEncoding()) + items.append(statusQueryItem) + } + return items + } + } +} + +extension ListMembershipsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/memberships" + } +} + +public struct ListMembershipsInput: Swift.Equatable { + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// A filter which will return only memberships in the specified status. + public var status: CleanRoomsClientTypes.MembershipStatus? + + public init ( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + status: CleanRoomsClientTypes.MembershipStatus? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + self.status = status + } +} + +struct ListMembershipsInputBody: Swift.Equatable { +} + +extension ListMembershipsInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListMembershipsOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListMembershipsOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListMembershipsOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListMembershipsOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListMembershipsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.membershipSummaries = output.membershipSummaries + self.nextToken = output.nextToken + } else { + self.membershipSummaries = nil + self.nextToken = nil + } + } +} + +public struct ListMembershipsOutputResponse: Swift.Equatable { + /// The list of memberships returned from the ListMemberships operation. + /// This member is required. + public var membershipSummaries: [CleanRoomsClientTypes.MembershipSummary]? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init ( + membershipSummaries: [CleanRoomsClientTypes.MembershipSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.membershipSummaries = membershipSummaries + self.nextToken = nextToken + } +} + +struct ListMembershipsOutputResponseBody: Swift.Equatable { + let nextToken: Swift.String? + let membershipSummaries: [CleanRoomsClientTypes.MembershipSummary]? +} + +extension ListMembershipsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case membershipSummaries + case nextToken + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + let membershipSummariesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MembershipSummary?].self, forKey: .membershipSummaries) + var membershipSummariesDecoded0:[CleanRoomsClientTypes.MembershipSummary]? = nil + if let membershipSummariesContainer = membershipSummariesContainer { + membershipSummariesDecoded0 = [CleanRoomsClientTypes.MembershipSummary]() + for structure0 in membershipSummariesContainer { + if let structure0 = structure0 { + membershipSummariesDecoded0?.append(structure0) + } + } + } + membershipSummaries = membershipSummariesDecoded0 + } +} + +extension ListProtectedQueriesInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let status = status { + let statusQueryItem = ClientRuntime.URLQueryItem(name: "status".urlPercentEncoding(), value: Swift.String(status.rawValue).urlPercentEncoding()) + items.append(statusQueryItem) + } + return items + } + } +} + +extension ListProtectedQueriesInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/protectedQueries" + } +} + +public struct ListProtectedQueriesInput: Swift.Equatable { + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service can return a nextToken even if the maximum results has not been met. + public var maxResults: Swift.Int? + /// The identifier for the membership in the collaboration. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// A filter on the status of the protected query. + public var status: CleanRoomsClientTypes.ProtectedQueryStatus? + + public init ( + maxResults: Swift.Int? = nil, + membershipIdentifier: Swift.String? = nil, + nextToken: Swift.String? = nil, + status: CleanRoomsClientTypes.ProtectedQueryStatus? = nil + ) + { + self.maxResults = maxResults + self.membershipIdentifier = membershipIdentifier + self.nextToken = nextToken + self.status = status + } +} + +struct ListProtectedQueriesInputBody: Swift.Equatable { +} + +extension ListProtectedQueriesInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListProtectedQueriesOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListProtectedQueriesOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListProtectedQueriesOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListProtectedQueriesOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListProtectedQueriesOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.nextToken = output.nextToken + self.protectedQueries = output.protectedQueries + } else { + self.nextToken = nil + self.protectedQueries = nil + } + } +} + +public struct ListProtectedQueriesOutputResponse: Swift.Equatable { + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// A list of protected queries. + /// This member is required. + public var protectedQueries: [CleanRoomsClientTypes.ProtectedQuerySummary]? + + public init ( + nextToken: Swift.String? = nil, + protectedQueries: [CleanRoomsClientTypes.ProtectedQuerySummary]? = nil + ) + { + self.nextToken = nextToken + self.protectedQueries = protectedQueries + } +} + +struct ListProtectedQueriesOutputResponseBody: Swift.Equatable { + let nextToken: Swift.String? + let protectedQueries: [CleanRoomsClientTypes.ProtectedQuerySummary]? +} + +extension ListProtectedQueriesOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case nextToken + case protectedQueries + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + let protectedQueriesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ProtectedQuerySummary?].self, forKey: .protectedQueries) + var protectedQueriesDecoded0:[CleanRoomsClientTypes.ProtectedQuerySummary]? = nil + if let protectedQueriesContainer = protectedQueriesContainer { + protectedQueriesDecoded0 = [CleanRoomsClientTypes.ProtectedQuerySummary]() + for structure0 in protectedQueriesContainer { + if let structure0 = structure0 { + protectedQueriesDecoded0?.append(structure0) + } + } + } + protectedQueries = protectedQueriesDecoded0 + } +} + +extension ListSchemasInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let nextToken = nextToken { + let nextTokenQueryItem = ClientRuntime.URLQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = maxResults { + let maxResultsQueryItem = ClientRuntime.URLQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + if let schemaType = schemaType { + let schemaTypeQueryItem = ClientRuntime.URLQueryItem(name: "schemaType".urlPercentEncoding(), value: Swift.String(schemaType.rawValue).urlPercentEncoding()) + items.append(schemaTypeQueryItem) + } + return items + } + } +} + +extension ListSchemasInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/schemas" + } +} + +public struct ListSchemasInput: Swift.Equatable { + /// A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// If present, filter schemas by schema type. The only valid schema type is currently `TABLE`. + public var schemaType: CleanRoomsClientTypes.SchemaType? + + public init ( + collaborationIdentifier: Swift.String? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + schemaType: CleanRoomsClientTypes.SchemaType? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.maxResults = maxResults + self.nextToken = nextToken + self.schemaType = schemaType + } +} + +struct ListSchemasInputBody: Swift.Equatable { +} + +extension ListSchemasInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListSchemasOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListSchemasOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListSchemasOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListSchemasOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListSchemasOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.nextToken = output.nextToken + self.schemaSummaries = output.schemaSummaries + } else { + self.nextToken = nil + self.schemaSummaries = nil + } + } +} + +public struct ListSchemasOutputResponse: Swift.Equatable { + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// The retrieved list of schemas. + /// This member is required. + public var schemaSummaries: [CleanRoomsClientTypes.SchemaSummary]? + + public init ( + nextToken: Swift.String? = nil, + schemaSummaries: [CleanRoomsClientTypes.SchemaSummary]? = nil + ) + { + self.nextToken = nextToken + self.schemaSummaries = schemaSummaries + } +} + +struct ListSchemasOutputResponseBody: Swift.Equatable { + let schemaSummaries: [CleanRoomsClientTypes.SchemaSummary]? + let nextToken: Swift.String? +} + +extension ListSchemasOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case nextToken + case schemaSummaries + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let schemaSummariesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.SchemaSummary?].self, forKey: .schemaSummaries) + var schemaSummariesDecoded0:[CleanRoomsClientTypes.SchemaSummary]? = nil + if let schemaSummariesContainer = schemaSummariesContainer { + schemaSummariesDecoded0 = [CleanRoomsClientTypes.SchemaSummary]() + for structure0 in schemaSummariesContainer { + if let structure0 = structure0 { + schemaSummariesDecoded0?.append(structure0) + } + } + } + schemaSummaries = schemaSummariesDecoded0 + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + +extension CleanRoomsClientTypes { + public enum MemberAbility: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case canQuery + case canReceiveResults + case sdkUnknown(Swift.String) + + public static var allCases: [MemberAbility] { + return [ + .canQuery, + .canReceiveResults, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .canQuery: return "CAN_QUERY" + case .canReceiveResults: return "CAN_RECEIVE_RESULTS" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = MemberAbility(rawValue: rawValue) ?? MemberAbility.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.MemberSpecification: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountId + case displayName + case memberAbilities + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountId = self.accountId { + try encodeContainer.encode(accountId, forKey: .accountId) + } + if let displayName = self.displayName { + try encodeContainer.encode(displayName, forKey: .displayName) + } + if let memberAbilities = memberAbilities { + var memberAbilitiesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .memberAbilities) + for memberability0 in memberAbilities { + try memberAbilitiesContainer.encode(memberability0.rawValue) + } + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountId) + accountId = accountIdDecoded + let memberAbilitiesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberAbility?].self, forKey: .memberAbilities) + var memberAbilitiesDecoded0:[CleanRoomsClientTypes.MemberAbility]? = nil + if let memberAbilitiesContainer = memberAbilitiesContainer { + memberAbilitiesDecoded0 = [CleanRoomsClientTypes.MemberAbility]() + for string0 in memberAbilitiesContainer { + if let string0 = string0 { + memberAbilitiesDecoded0?.append(string0) + } + } + } + memberAbilities = memberAbilitiesDecoded0 + let displayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .displayName) + displayName = displayNameDecoded + } +} + +extension CleanRoomsClientTypes { + /// Basic metadata used to construct a new member. + public struct MemberSpecification: Swift.Equatable { + /// The identifier used to reference members of the collaboration. Currently only supports AWS Account ID. + /// This member is required. + public var accountId: Swift.String? + /// The member's display name. + /// This member is required. + public var displayName: Swift.String? + /// The abilities granted to the collaboration member. + /// This member is required. + public var memberAbilities: [CleanRoomsClientTypes.MemberAbility]? + + public init ( + accountId: Swift.String? = nil, + displayName: Swift.String? = nil, + memberAbilities: [CleanRoomsClientTypes.MemberAbility]? = nil + ) + { + self.accountId = accountId + self.displayName = displayName + self.memberAbilities = memberAbilities + } + } + +} + +extension CleanRoomsClientTypes { + public enum MemberStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case invited + case `left` + case removed + case sdkUnknown(Swift.String) + + public static var allCases: [MemberStatus] { + return [ + .active, + .invited, + .left, + .removed, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .invited: return "INVITED" + case .left: return "LEFT" + case .removed: return "REMOVED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = MemberStatus(rawValue: rawValue) ?? MemberStatus.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.MemberSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case abilities + case accountId + case createTime + case displayName + case membershipArn + case membershipId + case status + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let abilities = abilities { + var abilitiesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .abilities) + for memberability0 in abilities { + try abilitiesContainer.encode(memberability0.rawValue) + } + } + if let accountId = self.accountId { + try encodeContainer.encode(accountId, forKey: .accountId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let displayName = self.displayName { + try encodeContainer.encode(displayName, forKey: .displayName) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountId) + accountId = accountIdDecoded + let statusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MemberStatus.self, forKey: .status) + status = statusDecoded + let displayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .displayName) + displayName = displayNameDecoded + let abilitiesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberAbility?].self, forKey: .abilities) + var abilitiesDecoded0:[CleanRoomsClientTypes.MemberAbility]? = nil + if let abilitiesContainer = abilitiesContainer { + abilitiesDecoded0 = [CleanRoomsClientTypes.MemberAbility]() + for string0 in abilitiesContainer { + if let string0 = string0 { + abilitiesDecoded0?.append(string0) + } + } + } + abilities = abilitiesDecoded0 + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + } +} + +extension CleanRoomsClientTypes { + /// The member object listed by the request. + public struct MemberSummary: Swift.Equatable { + /// The abilities granted to the collaboration member. + /// This member is required. + public var abilities: [CleanRoomsClientTypes.MemberAbility]? + /// The identifier used to reference members of the collaboration. Currently only supports AWS Account ID. + /// This member is required. + public var accountId: Swift.String? + /// The time when the member was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The member's display name. + /// This member is required. + public var displayName: Swift.String? + /// The unique ARN for the member's associated membership, if present. + public var membershipArn: Swift.String? + /// The unique ID for the member's associated membership, if present. + public var membershipId: Swift.String? + /// The status of the member. Valid values are `INVITED`, `ACTIVE`, `LEFT`, and `REMOVED`. + /// This member is required. + public var status: CleanRoomsClientTypes.MemberStatus? + /// The time the member metadata was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + abilities: [CleanRoomsClientTypes.MemberAbility]? = nil, + accountId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + displayName: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + status: CleanRoomsClientTypes.MemberStatus? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.abilities = abilities + self.accountId = accountId + self.createTime = createTime + self.displayName = displayName + self.membershipArn = membershipArn + self.membershipId = membershipId + self.status = status + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.Membership: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case collaborationArn + case collaborationCreatorAccountId + case collaborationCreatorDisplayName + case collaborationId + case collaborationName + case createTime + case id + case memberAbilities + case queryLogStatus + case status + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let collaborationArn = self.collaborationArn { + try encodeContainer.encode(collaborationArn, forKey: .collaborationArn) + } + if let collaborationCreatorAccountId = self.collaborationCreatorAccountId { + try encodeContainer.encode(collaborationCreatorAccountId, forKey: .collaborationCreatorAccountId) + } + if let collaborationCreatorDisplayName = self.collaborationCreatorDisplayName { + try encodeContainer.encode(collaborationCreatorDisplayName, forKey: .collaborationCreatorDisplayName) + } + if let collaborationId = self.collaborationId { + try encodeContainer.encode(collaborationId, forKey: .collaborationId) + } + if let collaborationName = self.collaborationName { + try encodeContainer.encode(collaborationName, forKey: .collaborationName) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let memberAbilities = memberAbilities { + var memberAbilitiesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .memberAbilities) + for memberability0 in memberAbilities { + try memberAbilitiesContainer.encode(memberability0.rawValue) + } + } + if let queryLogStatus = self.queryLogStatus { + try encodeContainer.encode(queryLogStatus.rawValue, forKey: .queryLogStatus) + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let collaborationArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationArn) + collaborationArn = collaborationArnDecoded + let collaborationIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationId) + collaborationId = collaborationIdDecoded + let collaborationCreatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationCreatorAccountId) + collaborationCreatorAccountId = collaborationCreatorAccountIdDecoded + let collaborationCreatorDisplayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationCreatorDisplayName) + collaborationCreatorDisplayName = collaborationCreatorDisplayNameDecoded + let collaborationNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationName) + collaborationName = collaborationNameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let statusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MembershipStatus.self, forKey: .status) + status = statusDecoded + let memberAbilitiesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberAbility?].self, forKey: .memberAbilities) + var memberAbilitiesDecoded0:[CleanRoomsClientTypes.MemberAbility]? = nil + if let memberAbilitiesContainer = memberAbilitiesContainer { + memberAbilitiesDecoded0 = [CleanRoomsClientTypes.MemberAbility]() + for string0 in memberAbilitiesContainer { + if let string0 = string0 { + memberAbilitiesDecoded0?.append(string0) + } + } + } + memberAbilities = memberAbilitiesDecoded0 + let queryLogStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MembershipQueryLogStatus.self, forKey: .queryLogStatus) + queryLogStatus = queryLogStatusDecoded + } +} + +extension CleanRoomsClientTypes { + /// The membership object. + public struct Membership: Swift.Equatable { + /// The unique ARN for the membership. + /// This member is required. + public var arn: Swift.String? + /// The unique ARN for the membership's associated collaboration. + /// This member is required. + public var collaborationArn: Swift.String? + /// The identifier used to reference members of the collaboration. Currently only supports AWS account ID. + /// This member is required. + public var collaborationCreatorAccountId: Swift.String? + /// The display name of the collaboration creator. + /// This member is required. + public var collaborationCreatorDisplayName: Swift.String? + /// The unique ID for the membership's collaboration. + /// This member is required. + public var collaborationId: Swift.String? + /// The name of the membership's collaboration. + /// This member is required. + public var collaborationName: Swift.String? + /// The time when the membership was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique ID of the membership. + /// This member is required. + public var id: Swift.String? + /// The abilities granted to the collaboration member. + /// This member is required. + public var memberAbilities: [CleanRoomsClientTypes.MemberAbility]? + /// An indicator as to whether query logging has been enabled or disabled for the collaboration. + /// This member is required. + public var queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? + /// The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and `COLLABORATION_DELETED`. + /// This member is required. + public var status: CleanRoomsClientTypes.MembershipStatus? + /// The time the membership metadata was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationCreatorAccountId: Swift.String? = nil, + collaborationCreatorDisplayName: Swift.String? = nil, + collaborationId: Swift.String? = nil, + collaborationName: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + memberAbilities: [CleanRoomsClientTypes.MemberAbility]? = nil, + queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? = nil, + status: CleanRoomsClientTypes.MembershipStatus? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationCreatorAccountId = collaborationCreatorAccountId + self.collaborationCreatorDisplayName = collaborationCreatorDisplayName + self.collaborationId = collaborationId + self.collaborationName = collaborationName + self.createTime = createTime + self.id = id + self.memberAbilities = memberAbilities + self.queryLogStatus = queryLogStatus + self.status = status + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes { + public enum MembershipQueryLogStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [MembershipQueryLogStatus] { + return [ + .disabled, + .enabled, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = MembershipQueryLogStatus(rawValue: rawValue) ?? MembershipQueryLogStatus.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes { + public enum MembershipStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case collaborationDeleted + case removed + case sdkUnknown(Swift.String) + + public static var allCases: [MembershipStatus] { + return [ + .active, + .collaborationDeleted, + .removed, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .collaborationDeleted: return "COLLABORATION_DELETED" + case .removed: return "REMOVED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = MembershipStatus(rawValue: rawValue) ?? MembershipStatus.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.MembershipSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn + case collaborationArn + case collaborationCreatorAccountId + case collaborationCreatorDisplayName + case collaborationId + case collaborationName + case createTime + case id + case memberAbilities + case status + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let arn = self.arn { + try encodeContainer.encode(arn, forKey: .arn) + } + if let collaborationArn = self.collaborationArn { + try encodeContainer.encode(collaborationArn, forKey: .collaborationArn) + } + if let collaborationCreatorAccountId = self.collaborationCreatorAccountId { + try encodeContainer.encode(collaborationCreatorAccountId, forKey: .collaborationCreatorAccountId) + } + if let collaborationCreatorDisplayName = self.collaborationCreatorDisplayName { + try encodeContainer.encode(collaborationCreatorDisplayName, forKey: .collaborationCreatorDisplayName) + } + if let collaborationId = self.collaborationId { + try encodeContainer.encode(collaborationId, forKey: .collaborationId) + } + if let collaborationName = self.collaborationName { + try encodeContainer.encode(collaborationName, forKey: .collaborationName) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let memberAbilities = memberAbilities { + var memberAbilitiesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .memberAbilities) + for memberability0 in memberAbilities { + try memberAbilitiesContainer.encode(memberability0.rawValue) + } + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let collaborationArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationArn) + collaborationArn = collaborationArnDecoded + let collaborationIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationId) + collaborationId = collaborationIdDecoded + let collaborationCreatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationCreatorAccountId) + collaborationCreatorAccountId = collaborationCreatorAccountIdDecoded + let collaborationCreatorDisplayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationCreatorDisplayName) + collaborationCreatorDisplayName = collaborationCreatorDisplayNameDecoded + let collaborationNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationName) + collaborationName = collaborationNameDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let statusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MembershipStatus.self, forKey: .status) + status = statusDecoded + let memberAbilitiesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.MemberAbility?].self, forKey: .memberAbilities) + var memberAbilitiesDecoded0:[CleanRoomsClientTypes.MemberAbility]? = nil + if let memberAbilitiesContainer = memberAbilitiesContainer { + memberAbilitiesDecoded0 = [CleanRoomsClientTypes.MemberAbility]() + for string0 in memberAbilitiesContainer { + if let string0 = string0 { + memberAbilitiesDecoded0?.append(string0) + } + } + } + memberAbilities = memberAbilitiesDecoded0 + } +} + +extension CleanRoomsClientTypes { + /// The membership object listed by the request. + public struct MembershipSummary: Swift.Equatable { + /// The unique ARN for the membership. + /// This member is required. + public var arn: Swift.String? + /// The unique ARN for the membership's associated collaboration. + /// This member is required. + public var collaborationArn: Swift.String? + /// The identifier of the AWS principal that created the collaboration. Currently only supports AWS account ID. + /// This member is required. + public var collaborationCreatorAccountId: Swift.String? + /// The display name of the collaboration creator. + /// This member is required. + public var collaborationCreatorDisplayName: Swift.String? + /// The unique ID for the membership's collaboration. + /// This member is required. + public var collaborationId: Swift.String? + /// The name for the membership's collaboration. + /// This member is required. + public var collaborationName: Swift.String? + /// The time when the membership was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique ID for the membership's collaboration. + /// This member is required. + public var id: Swift.String? + /// The abilities granted to the collaboration member. + /// This member is required. + public var memberAbilities: [CleanRoomsClientTypes.MemberAbility]? + /// The status of the membership. Valid values are `ACTIVE`, `REMOVED`, and `COLLABORATION_DELETED`. + /// This member is required. + public var status: CleanRoomsClientTypes.MembershipStatus? + /// The time the membership metadata was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationCreatorAccountId: Swift.String? = nil, + collaborationCreatorDisplayName: Swift.String? = nil, + collaborationId: Swift.String? = nil, + collaborationName: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + memberAbilities: [CleanRoomsClientTypes.MemberAbility]? = nil, + status: CleanRoomsClientTypes.MembershipStatus? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationCreatorAccountId = collaborationCreatorAccountId + self.collaborationCreatorDisplayName = collaborationCreatorDisplayName + self.collaborationId = collaborationId + self.collaborationName = collaborationName + self.createTime = createTime + self.id = id + self.memberAbilities = memberAbilities + self.status = status + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQuery: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case createTime + case error + case id + case membershipArn + case membershipId + case result + case resultConfiguration + case sqlParameters + case statistics + case status + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let error = self.error { + try encodeContainer.encode(error, forKey: .error) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let result = self.result { + try encodeContainer.encode(result, forKey: .result) + } + if let resultConfiguration = self.resultConfiguration { + try encodeContainer.encode(resultConfiguration, forKey: .resultConfiguration) + } + if let sqlParameters = self.sqlParameters { + try encodeContainer.encode(sqlParameters, forKey: .sqlParameters) + } + if let statistics = self.statistics { + try encodeContainer.encode(statistics, forKey: .statistics) + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let sqlParametersDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQuerySQLParameters.self, forKey: .sqlParameters) + sqlParameters = sqlParametersDecoded + let statusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryStatus.self, forKey: .status) + status = statusDecoded + let resultConfigurationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryResultConfiguration.self, forKey: .resultConfiguration) + resultConfiguration = resultConfigurationDecoded + let statisticsDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryStatistics.self, forKey: .statistics) + statistics = statisticsDecoded + let resultDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryResult.self, forKey: .result) + result = resultDecoded + let errorDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryError.self, forKey: .error) + error = errorDecoded + } +} + +extension CleanRoomsClientTypes.ProtectedQuery: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ProtectedQuery(createTime: \(Swift.String(describing: createTime)), error: \(Swift.String(describing: error)), id: \(Swift.String(describing: id)), membershipArn: \(Swift.String(describing: membershipArn)), membershipId: \(Swift.String(describing: membershipId)), result: \(Swift.String(describing: result)), resultConfiguration: \(Swift.String(describing: resultConfiguration)), statistics: \(Swift.String(describing: statistics)), status: \(Swift.String(describing: status)), sqlParameters: \"CONTENT_REDACTED\")"} +} + +extension CleanRoomsClientTypes { + /// The parameters for an AWS Clean Rooms protected query. + public struct ProtectedQuery: Swift.Equatable { + /// The time at which the protected query was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// An error thrown by the protected query. + public var error: CleanRoomsClientTypes.ProtectedQueryError? + /// The identifier for a protected query instance. + /// This member is required. + public var id: Swift.String? + /// The ARN of the membership. + /// This member is required. + public var membershipArn: Swift.String? + /// The identifier for the membership. + /// This member is required. + public var membershipId: Swift.String? + /// The result of the protected query. + public var result: CleanRoomsClientTypes.ProtectedQueryResult? + /// Contains any details needed to write the query results. + /// This member is required. + public var resultConfiguration: CleanRoomsClientTypes.ProtectedQueryResultConfiguration? + /// The protected query SQL parameters. + /// This member is required. + public var sqlParameters: CleanRoomsClientTypes.ProtectedQuerySQLParameters? + /// Statistics about protected query execution. + public var statistics: CleanRoomsClientTypes.ProtectedQueryStatistics? + /// The status of the query. + /// This member is required. + public var status: CleanRoomsClientTypes.ProtectedQueryStatus? + + public init ( + createTime: ClientRuntime.Date? = nil, + error: CleanRoomsClientTypes.ProtectedQueryError? = nil, + id: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + result: CleanRoomsClientTypes.ProtectedQueryResult? = nil, + resultConfiguration: CleanRoomsClientTypes.ProtectedQueryResultConfiguration? = nil, + sqlParameters: CleanRoomsClientTypes.ProtectedQuerySQLParameters? = nil, + statistics: CleanRoomsClientTypes.ProtectedQueryStatistics? = nil, + status: CleanRoomsClientTypes.ProtectedQueryStatus? = nil + ) + { + self.createTime = createTime + self.error = error + self.id = id + self.membershipArn = membershipArn + self.membershipId = membershipId + self.result = result + self.resultConfiguration = resultConfiguration + self.sqlParameters = sqlParameters + self.statistics = statistics + self.status = status + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryError: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case code + case message + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let code = self.code { + try encodeContainer.encode(code, forKey: .code) + } + if let message = self.message { + try encodeContainer.encode(message, forKey: .message) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let codeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .code) + code = codeDecoded + } +} + +extension CleanRoomsClientTypes { + /// Details of errors thrown by the protected query. + public struct ProtectedQueryError: Swift.Equatable { + /// An error code for the error. + /// This member is required. + public var code: Swift.String? + /// A description of why the query failed. + /// This member is required. + public var message: Swift.String? + + public init ( + code: Swift.String? = nil, + message: Swift.String? = nil + ) + { + self.code = code + self.message = message + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryOutput: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case s3 + case sdkUnknown + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .s3(s3): + try container.encode(s3, forKey: .s3) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let s3Decoded = try values.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryS3Output.self, forKey: .s3) + if let s3 = s3Decoded { + self = .s3(s3) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Contains details about the protected query output. + public enum ProtectedQueryOutput: Swift.Equatable { + /// If present, the output for a protected query with an `S3` output type. + case s3(CleanRoomsClientTypes.ProtectedQueryS3Output) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryOutputConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case s3 + case sdkUnknown + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .s3(s3): + try container.encode(s3, forKey: .s3) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let s3Decoded = try values.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration.self, forKey: .s3) + if let s3 = s3Decoded { + self = .s3(s3) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// Contains configuration details for protected query output. + public enum ProtectedQueryOutputConfiguration: Swift.Equatable { + /// Required configuration for a protected query with an `S3` output type. + case s3(CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryResult: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case output + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let output = self.output { + try encodeContainer.encode(output, forKey: .output) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let outputDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryOutput.self, forKey: .output) + output = outputDecoded + } +} + +extension CleanRoomsClientTypes { + /// Details about the query results. + public struct ProtectedQueryResult: Swift.Equatable { + /// The output of the protected query. + /// This member is required. + public var output: CleanRoomsClientTypes.ProtectedQueryOutput? + + public init ( + output: CleanRoomsClientTypes.ProtectedQueryOutput? = nil + ) + { + self.output = output + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryResultConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case outputConfiguration + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let outputConfiguration = self.outputConfiguration { + try encodeContainer.encode(outputConfiguration, forKey: .outputConfiguration) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let outputConfigurationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryOutputConfiguration.self, forKey: .outputConfiguration) + outputConfiguration = outputConfigurationDecoded + } +} + +extension CleanRoomsClientTypes { + /// Contains configurations for protected query results. + public struct ProtectedQueryResultConfiguration: Swift.Equatable { + /// Configuration for protected query results. + /// This member is required. + public var outputConfiguration: CleanRoomsClientTypes.ProtectedQueryOutputConfiguration? + + public init ( + outputConfiguration: CleanRoomsClientTypes.ProtectedQueryOutputConfiguration? = nil + ) + { + self.outputConfiguration = outputConfiguration + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryS3Output: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case location + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let location = self.location { + try encodeContainer.encode(location, forKey: .location) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let locationDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .location) + location = locationDecoded + } +} + +extension CleanRoomsClientTypes { + /// Contains output information for protected queries with an S3 output type. + public struct ProtectedQueryS3Output: Swift.Equatable { + /// The S3 location of the result. + /// This member is required. + public var location: Swift.String? + + public init ( + location: Swift.String? = nil + ) + { + self.location = location + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case bucket + case keyPrefix + case resultFormat + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let bucket = self.bucket { + try encodeContainer.encode(bucket, forKey: .bucket) + } + if let keyPrefix = self.keyPrefix { + try encodeContainer.encode(keyPrefix, forKey: .keyPrefix) + } + if let resultFormat = self.resultFormat { + try encodeContainer.encode(resultFormat.rawValue, forKey: .resultFormat) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let resultFormatDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ResultFormat.self, forKey: .resultFormat) + resultFormat = resultFormatDecoded + let bucketDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .bucket) + bucket = bucketDecoded + let keyPrefixDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .keyPrefix) + keyPrefix = keyPrefixDecoded + } +} + +extension CleanRoomsClientTypes { + /// Contains the configuration to write the query results to S3. + public struct ProtectedQueryS3OutputConfiguration: Swift.Equatable { + /// The S3 bucket to unload the protected query results. + /// This member is required. + public var bucket: Swift.String? + /// The S3 prefix to unload the protected query results. + public var keyPrefix: Swift.String? + /// Intended file format of the result. + /// This member is required. + public var resultFormat: CleanRoomsClientTypes.ResultFormat? + + public init ( + bucket: Swift.String? = nil, + keyPrefix: Swift.String? = nil, + resultFormat: CleanRoomsClientTypes.ResultFormat? = nil + ) + { + self.bucket = bucket + self.keyPrefix = keyPrefix + self.resultFormat = resultFormat + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQuerySQLParameters: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case queryString + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let queryString = self.queryString { + try encodeContainer.encode(queryString, forKey: .queryString) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let queryStringDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .queryString) + queryString = queryStringDecoded + } +} + +extension CleanRoomsClientTypes.ProtectedQuerySQLParameters: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CONTENT_REDACTED" + } +} + +extension CleanRoomsClientTypes { + /// The parameters for the SQL type Protected Query. + public struct ProtectedQuerySQLParameters: Swift.Equatable { + /// The query string to be submitted. + /// This member is required. + public var queryString: Swift.String? + + public init ( + queryString: Swift.String? = nil + ) + { + self.queryString = queryString + } + } + +} + +extension CleanRoomsClientTypes.ProtectedQueryStatistics: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case totalDurationInMillis + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let totalDurationInMillis = self.totalDurationInMillis { + try encodeContainer.encode(totalDurationInMillis, forKey: .totalDurationInMillis) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let totalDurationInMillisDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .totalDurationInMillis) + totalDurationInMillis = totalDurationInMillisDecoded + } +} + +extension CleanRoomsClientTypes { + /// Contains statistics about the execution of the protected query. + public struct ProtectedQueryStatistics: Swift.Equatable { + /// The duration of the Protected Query, from creation until query completion. + public var totalDurationInMillis: Swift.Int? + + public init ( + totalDurationInMillis: Swift.Int? = nil + ) + { + self.totalDurationInMillis = totalDurationInMillis + } + } + +} + +extension CleanRoomsClientTypes { + public enum ProtectedQueryStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case cancelled + case cancelling + case failed + case started + case submitted + case success + case timedOut + case sdkUnknown(Swift.String) + + public static var allCases: [ProtectedQueryStatus] { + return [ + .cancelled, + .cancelling, + .failed, + .started, + .submitted, + .success, + .timedOut, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .cancelled: return "CANCELLED" + case .cancelling: return "CANCELLING" + case .failed: return "FAILED" + case .started: return "STARTED" + case .submitted: return "SUBMITTED" + case .success: return "SUCCESS" + case .timedOut: return "TIMED_OUT" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ProtectedQueryStatus(rawValue: rawValue) ?? ProtectedQueryStatus.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.ProtectedQuerySummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case createTime + case id + case membershipArn + case membershipId + case status + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let membershipArn = self.membershipArn { + try encodeContainer.encode(membershipArn, forKey: .membershipArn) + } + if let membershipId = self.membershipId { + try encodeContainer.encode(membershipId, forKey: .membershipId) + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let membershipIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipId) + membershipId = membershipIdDecoded + let membershipArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .membershipArn) + membershipArn = membershipArnDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let statusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryStatus.self, forKey: .status) + status = statusDecoded + } +} + +extension CleanRoomsClientTypes { + /// The protected query summary for the objects listed by the request. + public struct ProtectedQuerySummary: Swift.Equatable { + /// The time the protected query was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique ID of the protected query. + /// This member is required. + public var id: Swift.String? + /// The unique ARN for the membership that initiated the protected query. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique ID for the membership that initiated the protected query. + /// This member is required. + public var membershipId: Swift.String? + /// The status of the protected query. Value values are `SUBMITTED`, `STARTED`, `CANCELLED`, `CANCELLING`, `FAILED`, `SUCCESS`, `TIMED_OUT`. + /// This member is required. + public var status: CleanRoomsClientTypes.ProtectedQueryStatus? + + public init ( + createTime: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + status: CleanRoomsClientTypes.ProtectedQueryStatus? = nil + ) + { + self.createTime = createTime + self.id = id + self.membershipArn = membershipArn + self.membershipId = membershipId + self.status = status + } + } + +} + +extension CleanRoomsClientTypes { + public enum ProtectedQueryType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case sql + case sdkUnknown(Swift.String) + + public static var allCases: [ProtectedQueryType] { + return [ + .sql, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .sql: return "SQL" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ProtectedQueryType(rawValue: rawValue) ?? ProtectedQueryType.sdkUnknown(rawValue) + } + } +} + +extension ResourceNotFoundException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ResourceNotFoundExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + self.resourceId = output.resourceId + self.resourceType = output.resourceType + } else { + self.message = nil + self.resourceId = nil + self.resourceType = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Request references a resource which does not exist. +public struct ResourceNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + /// This member is required. + public var message: Swift.String? + /// The Id of the missing resource. + /// This member is required. + public var resourceId: Swift.String? + /// The type of the missing resource. + /// This member is required. + public var resourceType: CleanRoomsClientTypes.ResourceType? + + public init ( + message: Swift.String? = nil, + resourceId: Swift.String? = nil, + resourceType: CleanRoomsClientTypes.ResourceType? = nil + ) + { + self.message = message + self.resourceId = resourceId + self.resourceType = resourceType + } +} + +struct ResourceNotFoundExceptionBody: Swift.Equatable { + let message: Swift.String? + let resourceId: Swift.String? + let resourceType: CleanRoomsClientTypes.ResourceType? +} + +extension ResourceNotFoundExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + case resourceId + case resourceType + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let resourceIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceId) + resourceId = resourceIdDecoded + let resourceTypeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ResourceType.self, forKey: .resourceType) + resourceType = resourceTypeDecoded + } +} + +extension CleanRoomsClientTypes { + public enum ResourceType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case collaboration + case configuredTable + case configuredTableAssociation + case membership + case sdkUnknown(Swift.String) + + public static var allCases: [ResourceType] { + return [ + .collaboration, + .configuredTable, + .configuredTableAssociation, + .membership, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .collaboration: return "COLLABORATION" + case .configuredTable: return "CONFIGURED_TABLE" + case .configuredTableAssociation: return "CONFIGURED_TABLE_ASSOCIATION" + case .membership: return "MEMBERSHIP" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ResourceType(rawValue: rawValue) ?? ResourceType.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes { + public enum ResultFormat: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case csv + case parquet + case sdkUnknown(Swift.String) + + public static var allCases: [ResultFormat] { + return [ + .csv, + .parquet, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .csv: return "CSV" + case .parquet: return "PARQUET" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ResultFormat(rawValue: rawValue) ?? ResultFormat.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes { + public enum ScalarFunctions: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case abs + case cast + case ceiling + case coalesce + case floor + case ln + case log + case lower + case round + case rtrim + case sqrt + case trunc + case upper + case sdkUnknown(Swift.String) + + public static var allCases: [ScalarFunctions] { + return [ + .abs, + .cast, + .ceiling, + .coalesce, + .floor, + .ln, + .log, + .lower, + .round, + .rtrim, + .sqrt, + .trunc, + .upper, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .abs: return "ABS" + case .cast: return "CAST" + case .ceiling: return "CEILING" + case .coalesce: return "COALESCE" + case .floor: return "FLOOR" + case .ln: return "LN" + case .log: return "LOG" + case .lower: return "LOWER" + case .round: return "ROUND" + case .rtrim: return "RTRIM" + case .sqrt: return "SQRT" + case .trunc: return "TRUNC" + case .upper: return "UPPER" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ScalarFunctions(rawValue: rawValue) ?? ScalarFunctions.sdkUnknown(rawValue) + } + } +} + +extension CleanRoomsClientTypes.Schema: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisMethod + case analysisRuleTypes + case collaborationArn + case collaborationId + case columns + case createTime + case creatorAccountId + case description + case name + case partitionKeys + case type + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let analysisMethod = self.analysisMethod { + try encodeContainer.encode(analysisMethod.rawValue, forKey: .analysisMethod) + } + if let analysisRuleTypes = analysisRuleTypes { + var analysisRuleTypesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .analysisRuleTypes) + for analysisruletype0 in analysisRuleTypes { + try analysisRuleTypesContainer.encode(analysisruletype0.rawValue) + } + } + if let collaborationArn = self.collaborationArn { + try encodeContainer.encode(collaborationArn, forKey: .collaborationArn) + } + if let collaborationId = self.collaborationId { + try encodeContainer.encode(collaborationId, forKey: .collaborationId) + } + if let columns = columns { + var columnsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .columns) + for column0 in columns { + try columnsContainer.encode(column0) + } + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let creatorAccountId = self.creatorAccountId { + try encodeContainer.encode(creatorAccountId, forKey: .creatorAccountId) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let partitionKeys = partitionKeys { + var partitionKeysContainer = encodeContainer.nestedUnkeyedContainer(forKey: .partitionKeys) + for column0 in partitionKeys { + try partitionKeysContainer.encode(column0) + } + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let columnsContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.Column?].self, forKey: .columns) + var columnsDecoded0:[CleanRoomsClientTypes.Column]? = nil + if let columnsContainer = columnsContainer { + columnsDecoded0 = [CleanRoomsClientTypes.Column]() + for structure0 in columnsContainer { + if let structure0 = structure0 { + columnsDecoded0?.append(structure0) + } + } + } + columns = columnsDecoded0 + let partitionKeysContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.Column?].self, forKey: .partitionKeys) + var partitionKeysDecoded0:[CleanRoomsClientTypes.Column]? = nil + if let partitionKeysContainer = partitionKeysContainer { + partitionKeysDecoded0 = [CleanRoomsClientTypes.Column]() + for structure0 in partitionKeysContainer { + if let structure0 = structure0 { + partitionKeysDecoded0?.append(structure0) + } + } + } + partitionKeys = partitionKeysDecoded0 + let analysisRuleTypesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.AnalysisRuleType?].self, forKey: .analysisRuleTypes) + var analysisRuleTypesDecoded0:[CleanRoomsClientTypes.AnalysisRuleType]? = nil + if let analysisRuleTypesContainer = analysisRuleTypesContainer { + analysisRuleTypesDecoded0 = [CleanRoomsClientTypes.AnalysisRuleType]() + for enum0 in analysisRuleTypesContainer { + if let enum0 = enum0 { + analysisRuleTypesDecoded0?.append(enum0) + } + } + } + analysisRuleTypes = analysisRuleTypesDecoded0 + let analysisMethodDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisMethod.self, forKey: .analysisMethod) + analysisMethod = analysisMethodDecoded + let creatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorAccountId) + creatorAccountId = creatorAccountIdDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let collaborationIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationId) + collaborationId = collaborationIdDecoded + let collaborationArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationArn) + collaborationArn = collaborationArnDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.SchemaType.self, forKey: .type) + type = typeDecoded + } +} + +extension CleanRoomsClientTypes { + /// A schema is a relation within a collaboration. + public struct Schema: Swift.Equatable { + /// The analysis method for the schema. The only valid value is currently DIRECT_QUERY. + public var analysisMethod: CleanRoomsClientTypes.AnalysisMethod? + /// The analysis rule types associated with the schema. Valued values are LIST and AGGREGATION. Currently, only one entry is present. + /// This member is required. + public var analysisRuleTypes: [CleanRoomsClientTypes.AnalysisRuleType]? + /// The unique ARN for the collaboration that the schema belongs to. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique ID for the collaboration that the schema belongs to. + /// This member is required. + public var collaborationId: Swift.String? + /// The columns for the relation this schema represents. + /// This member is required. + public var columns: [CleanRoomsClientTypes.Column]? + /// The time the schema was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique account ID for the AWS account that owns the schema. + /// This member is required. + public var creatorAccountId: Swift.String? + /// A description for the schema. + /// This member is required. + public var description: Swift.String? + /// A name for the schema. The schema relation is referred to by this name when queried by a protected query. + /// This member is required. + public var name: Swift.String? + /// The partition keys for the data set underlying this schema. + /// This member is required. + public var partitionKeys: [CleanRoomsClientTypes.Column]? + /// The type of schema. The only valid value is currently `TABLE`. + /// This member is required. + public var type: CleanRoomsClientTypes.SchemaType? + /// The time the schema was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + analysisMethod: CleanRoomsClientTypes.AnalysisMethod? = nil, + analysisRuleTypes: [CleanRoomsClientTypes.AnalysisRuleType]? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + columns: [CleanRoomsClientTypes.Column]? = nil, + createTime: ClientRuntime.Date? = nil, + creatorAccountId: Swift.String? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + partitionKeys: [CleanRoomsClientTypes.Column]? = nil, + type: CleanRoomsClientTypes.SchemaType? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.analysisMethod = analysisMethod + self.analysisRuleTypes = analysisRuleTypes + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.columns = columns + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.description = description + self.name = name + self.partitionKeys = partitionKeys + self.type = type + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes.SchemaSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisMethod + case analysisRuleTypes + case collaborationArn + case collaborationId + case createTime + case creatorAccountId + case name + case type + case updateTime + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let analysisMethod = self.analysisMethod { + try encodeContainer.encode(analysisMethod.rawValue, forKey: .analysisMethod) + } + if let analysisRuleTypes = analysisRuleTypes { + var analysisRuleTypesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .analysisRuleTypes) + for analysisruletype0 in analysisRuleTypes { + try analysisRuleTypesContainer.encode(analysisruletype0.rawValue) + } + } + if let collaborationArn = self.collaborationArn { + try encodeContainer.encode(collaborationArn, forKey: .collaborationArn) + } + if let collaborationId = self.collaborationId { + try encodeContainer.encode(collaborationId, forKey: .collaborationId) + } + if let createTime = self.createTime { + try encodeContainer.encodeTimestamp(createTime, format: .epochSeconds, forKey: .createTime) + } + if let creatorAccountId = self.creatorAccountId { + try encodeContainer.encode(creatorAccountId, forKey: .creatorAccountId) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + if let updateTime = self.updateTime { + try encodeContainer.encodeTimestamp(updateTime, format: .epochSeconds, forKey: .updateTime) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.SchemaType.self, forKey: .type) + type = typeDecoded + let creatorAccountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .creatorAccountId) + creatorAccountId = creatorAccountIdDecoded + let createTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createTime) + createTime = createTimeDecoded + let updateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updateTime) + updateTime = updateTimeDecoded + let collaborationIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationId) + collaborationId = collaborationIdDecoded + let collaborationArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .collaborationArn) + collaborationArn = collaborationArnDecoded + let analysisRuleTypesContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.AnalysisRuleType?].self, forKey: .analysisRuleTypes) + var analysisRuleTypesDecoded0:[CleanRoomsClientTypes.AnalysisRuleType]? = nil + if let analysisRuleTypesContainer = analysisRuleTypesContainer { + analysisRuleTypesDecoded0 = [CleanRoomsClientTypes.AnalysisRuleType]() + for enum0 in analysisRuleTypesContainer { + if let enum0 = enum0 { + analysisRuleTypesDecoded0?.append(enum0) + } + } + } + analysisRuleTypes = analysisRuleTypesDecoded0 + let analysisMethodDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.AnalysisMethod.self, forKey: .analysisMethod) + analysisMethod = analysisMethodDecoded + } +} + +extension CleanRoomsClientTypes { + /// The schema summary for the objects listed by the request. + public struct SchemaSummary: Swift.Equatable { + /// The analysis method for the associated schema. The only valid value is currently `DIRECT_QUERY`. + public var analysisMethod: CleanRoomsClientTypes.AnalysisMethod? + /// The types of analysis rules that are associated with this schema object. + /// This member is required. + public var analysisRuleTypes: [CleanRoomsClientTypes.AnalysisRuleType]? + /// The unique ARN for the collaboration that the schema belongs to. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique ID for the collaboration that the schema belongs to. + /// This member is required. + public var collaborationId: Swift.String? + /// The time the schema object was created. + /// This member is required. + public var createTime: ClientRuntime.Date? + /// The unique account ID for the AWS account that owns the schema. + /// This member is required. + public var creatorAccountId: Swift.String? + /// The name for the schema object. + /// This member is required. + public var name: Swift.String? + /// The type of schema object. The only valid schema type is currently `TABLE`. + /// This member is required. + public var type: CleanRoomsClientTypes.SchemaType? + /// The time the schema object was last updated. + /// This member is required. + public var updateTime: ClientRuntime.Date? + + public init ( + analysisMethod: CleanRoomsClientTypes.AnalysisMethod? = nil, + analysisRuleTypes: [CleanRoomsClientTypes.AnalysisRuleType]? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: ClientRuntime.Date? = nil, + creatorAccountId: Swift.String? = nil, + name: Swift.String? = nil, + type: CleanRoomsClientTypes.SchemaType? = nil, + updateTime: ClientRuntime.Date? = nil + ) + { + self.analysisMethod = analysisMethod + self.analysisRuleTypes = analysisRuleTypes + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.name = name + self.type = type + self.updateTime = updateTime + } + } + +} + +extension CleanRoomsClientTypes { + public enum SchemaType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case table + case sdkUnknown(Swift.String) + + public static var allCases: [SchemaType] { + return [ + .table, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .table: return "TABLE" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = SchemaType(rawValue: rawValue) ?? SchemaType.sdkUnknown(rawValue) + } + } +} + +extension ServiceQuotaExceededException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ServiceQuotaExceededExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + self.quotaName = output.quotaName + self.quotaValue = output.quotaValue + } else { + self.message = nil + self.quotaName = nil + self.quotaValue = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Request denied because service quota has been exceeded. +public struct ServiceQuotaExceededException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + /// This member is required. + public var message: Swift.String? + /// The name of the quota. + /// This member is required. + public var quotaName: Swift.String? + /// The value of the quota. + /// This member is required. + public var quotaValue: Swift.Double? + + public init ( + message: Swift.String? = nil, + quotaName: Swift.String? = nil, + quotaValue: Swift.Double? = nil + ) + { + self.message = message + self.quotaName = quotaName + self.quotaValue = quotaValue + } +} + +struct ServiceQuotaExceededExceptionBody: Swift.Equatable { + let message: Swift.String? + let quotaName: Swift.String? + let quotaValue: Swift.Double? +} + +extension ServiceQuotaExceededExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + case quotaName + case quotaValue + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let quotaNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .quotaName) + quotaName = quotaNameDecoded + let quotaValueDecoded = try containerValues.decodeIfPresent(Swift.Double.self, forKey: .quotaValue) + quotaValue = quotaValueDecoded + } +} + +extension StartProtectedQueryInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "StartProtectedQueryInput(membershipIdentifier: \(Swift.String(describing: membershipIdentifier)), resultConfiguration: \(Swift.String(describing: resultConfiguration)), type: \(Swift.String(describing: type)), sqlParameters: \"CONTENT_REDACTED\")"} +} + +extension StartProtectedQueryInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resultConfiguration + case sqlParameters + case type + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let resultConfiguration = self.resultConfiguration { + try encodeContainer.encode(resultConfiguration, forKey: .resultConfiguration) + } + if let sqlParameters = self.sqlParameters { + try encodeContainer.encode(sqlParameters, forKey: .sqlParameters) + } + if let type = self.type { + try encodeContainer.encode(type.rawValue, forKey: .type) + } + } +} + +extension StartProtectedQueryInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/protectedQueries" + } +} + +public struct StartProtectedQueryInput: Swift.Equatable { + /// A unique identifier for the membership to run this query against. Currently accepts a membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The details needed to write the query results. + /// This member is required. + public var resultConfiguration: CleanRoomsClientTypes.ProtectedQueryResultConfiguration? + /// The protected SQL query parameters. + /// This member is required. + public var sqlParameters: CleanRoomsClientTypes.ProtectedQuerySQLParameters? + /// The type of the protected query to be started. + /// This member is required. + public var type: CleanRoomsClientTypes.ProtectedQueryType? + + public init ( + membershipIdentifier: Swift.String? = nil, + resultConfiguration: CleanRoomsClientTypes.ProtectedQueryResultConfiguration? = nil, + sqlParameters: CleanRoomsClientTypes.ProtectedQuerySQLParameters? = nil, + type: CleanRoomsClientTypes.ProtectedQueryType? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + self.resultConfiguration = resultConfiguration + self.sqlParameters = sqlParameters + self.type = type + } +} + +struct StartProtectedQueryInputBody: Swift.Equatable { + let type: CleanRoomsClientTypes.ProtectedQueryType? + let sqlParameters: CleanRoomsClientTypes.ProtectedQuerySQLParameters? + let resultConfiguration: CleanRoomsClientTypes.ProtectedQueryResultConfiguration? +} + +extension StartProtectedQueryInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resultConfiguration + case sqlParameters + case type + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let typeDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryType.self, forKey: .type) + type = typeDecoded + let sqlParametersDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQuerySQLParameters.self, forKey: .sqlParameters) + sqlParameters = sqlParametersDecoded + let resultConfigurationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQueryResultConfiguration.self, forKey: .resultConfiguration) + resultConfiguration = resultConfigurationDecoded + } +} + +extension StartProtectedQueryOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension StartProtectedQueryOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum StartProtectedQueryOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension StartProtectedQueryOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: StartProtectedQueryOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.protectedQuery = output.protectedQuery + } else { + self.protectedQuery = nil + } + } +} + +public struct StartProtectedQueryOutputResponse: Swift.Equatable { + /// The protected query. + /// This member is required. + public var protectedQuery: CleanRoomsClientTypes.ProtectedQuery? + + public init ( + protectedQuery: CleanRoomsClientTypes.ProtectedQuery? = nil + ) + { + self.protectedQuery = protectedQuery + } +} + +struct StartProtectedQueryOutputResponseBody: Swift.Equatable { + let protectedQuery: CleanRoomsClientTypes.ProtectedQuery? +} + +extension StartProtectedQueryOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case protectedQuery + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let protectedQueryDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQuery.self, forKey: .protectedQuery) + protectedQuery = protectedQueryDecoded + } +} + +extension CleanRoomsClientTypes.TableReference: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case glue + case sdkUnknown + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .glue(glue): + try container.encode(glue, forKey: .glue) + case let .sdkUnknown(sdkUnknown): + try container.encode(sdkUnknown, forKey: .sdkUnknown) + } + } + + public init (from decoder: Swift.Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let glueDecoded = try values.decodeIfPresent(CleanRoomsClientTypes.GlueTableReference.self, forKey: .glue) + if let glue = glueDecoded { + self = .glue(glue) + return + } + self = .sdkUnknown("") + } +} + +extension CleanRoomsClientTypes { + /// A pointer to the data set that underlies this table. Currently, this can only be an AWS Glue table. + public enum TableReference: Swift.Equatable { + /// If present, a reference to the AWS Glue table referred to by this table reference. + case glue(CleanRoomsClientTypes.GlueTableReference) + case sdkUnknown(Swift.String) + } + +} + +extension CleanRoomsClientTypes { + public enum TargetProtectedQueryStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case cancelled + case sdkUnknown(Swift.String) + + public static var allCases: [TargetProtectedQueryStatus] { + return [ + .cancelled, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .cancelled: return "CANCELLED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = TargetProtectedQueryStatus(rawValue: rawValue) ?? TargetProtectedQueryStatus.sdkUnknown(rawValue) + } + } +} + +extension ThrottlingException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ThrottlingExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// Request was denied due to request throttling. +public struct ThrottlingException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ThrottlingExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ThrottlingExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension UpdateCollaborationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case name + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + } +} + +extension UpdateCollaborationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let collaborationIdentifier = collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())" + } +} + +public struct UpdateCollaborationInput: Swift.Equatable { + /// The identifier for the collaboration. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// A description of the collaboration. + public var description: Swift.String? + /// A human-readable identifier provided by the collaboration owner. Display names are not unique. + public var name: Swift.String? + + public init ( + collaborationIdentifier: Swift.String? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.description = description + self.name = name + } +} + +struct UpdateCollaborationInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? +} + +extension UpdateCollaborationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case name + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + } +} + +extension UpdateCollaborationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateCollaborationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateCollaborationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateCollaborationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateCollaborationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.collaboration = output.collaboration + } else { + self.collaboration = nil + } + } +} + +public struct UpdateCollaborationOutputResponse: Swift.Equatable { + /// The entire collaboration that has been updated. + /// This member is required. + public var collaboration: CleanRoomsClientTypes.Collaboration? + + public init ( + collaboration: CleanRoomsClientTypes.Collaboration? = nil + ) + { + self.collaboration = collaboration + } +} + +struct UpdateCollaborationOutputResponseBody: Swift.Equatable { + let collaboration: CleanRoomsClientTypes.Collaboration? +} + +extension UpdateCollaborationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case collaboration + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let collaborationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Collaboration.self, forKey: .collaboration) + collaboration = collaborationDecoded + } +} + +extension UpdateConfiguredTableAnalysisRuleInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRulePolicy + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let analysisRulePolicy = self.analysisRulePolicy { + try encodeContainer.encode(analysisRulePolicy, forKey: .analysisRulePolicy) + } + } +} + +extension UpdateConfiguredTableAnalysisRuleInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + guard let analysisRuleType = analysisRuleType else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +public struct UpdateConfiguredTableAnalysisRuleInput: Swift.Equatable { + /// The new analysis rule policy for the configured table analysis rule. + /// This member is required. + public var analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? + /// The analysis rule type to be updated. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? + /// The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + + public init ( + analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? = nil, + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAnalysisRuleType? = nil, + configuredTableIdentifier: Swift.String? = nil + ) + { + self.analysisRulePolicy = analysisRulePolicy + self.analysisRuleType = analysisRuleType + self.configuredTableIdentifier = configuredTableIdentifier + } +} + +struct UpdateConfiguredTableAnalysisRuleInputBody: Swift.Equatable { + let analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? +} + +extension UpdateConfiguredTableAnalysisRuleInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRulePolicy + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRulePolicyDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy.self, forKey: .analysisRulePolicy) + analysisRulePolicy = analysisRulePolicyDecoded + } +} + +extension UpdateConfiguredTableAnalysisRuleOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateConfiguredTableAnalysisRuleOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateConfiguredTableAnalysisRuleOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateConfiguredTableAnalysisRuleOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateConfiguredTableAnalysisRuleOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.analysisRule = output.analysisRule + } else { + self.analysisRule = nil + } + } +} + +public struct UpdateConfiguredTableAnalysisRuleOutputResponse: Swift.Equatable { + /// The entire updated analysis rule. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? + + public init ( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +struct UpdateConfiguredTableAnalysisRuleOutputResponseBody: Swift.Equatable { + let analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? +} + +extension UpdateConfiguredTableAnalysisRuleOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case analysisRule + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let analysisRuleDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAnalysisRule.self, forKey: .analysisRule) + analysisRule = analysisRuleDecoded + } +} + +extension UpdateConfiguredTableAssociationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case roleArn + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let roleArn = self.roleArn { + try encodeContainer.encode(roleArn, forKey: .roleArn) + } + } +} + +extension UpdateConfiguredTableAssociationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = configuredTableAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())" + } +} + +public struct UpdateConfiguredTableAssociationInput: Swift.Equatable { + /// The unique identifier for the configured table association to update. Currently accepts the configured table association ID. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A new description for the configured table association. + public var description: Swift.String? + /// The unique ID for the membership that the configured table association belongs to. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The service will assume this role to access catalog metadata and query the table. + public var roleArn: Swift.String? + + public init ( + configuredTableAssociationIdentifier: Swift.String? = nil, + description: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil, + roleArn: Swift.String? = nil + ) + { + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.description = description + self.membershipIdentifier = membershipIdentifier + self.roleArn = roleArn + } +} + +struct UpdateConfiguredTableAssociationInputBody: Swift.Equatable { + let description: Swift.String? + let roleArn: Swift.String? +} + +extension UpdateConfiguredTableAssociationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case roleArn + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let roleArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .roleArn) + roleArn = roleArnDecoded + } +} + +extension UpdateConfiguredTableAssociationOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateConfiguredTableAssociationOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateConfiguredTableAssociationOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateConfiguredTableAssociationOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateConfiguredTableAssociationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTableAssociation = output.configuredTableAssociation + } else { + self.configuredTableAssociation = nil + } + } +} + +public struct UpdateConfiguredTableAssociationOutputResponse: Swift.Equatable { + /// The entire updated configured table association. + /// This member is required. + public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? + + public init ( + configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? = nil + ) + { + self.configuredTableAssociation = configuredTableAssociation + } +} + +struct UpdateConfiguredTableAssociationOutputResponseBody: Swift.Equatable { + let configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? +} + +extension UpdateConfiguredTableAssociationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTableAssociation + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableAssociationDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTableAssociation.self, forKey: .configuredTableAssociation) + configuredTableAssociation = configuredTableAssociationDecoded + } +} + +extension UpdateConfiguredTableInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case name + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + } +} + +extension UpdateConfiguredTableInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let configuredTableIdentifier = configuredTableIdentifier else { + return nil + } + return "/configuredTables/\(configuredTableIdentifier.urlPercentEncoding())" + } +} + +public struct UpdateConfiguredTableInput: Swift.Equatable { + /// The identifier for the configured table to update. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableIdentifier: Swift.String? + /// A new description for the configured table. + public var description: Swift.String? + /// A new name for the configured table. + public var name: Swift.String? + + public init ( + configuredTableIdentifier: Swift.String? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.configuredTableIdentifier = configuredTableIdentifier + self.description = description + self.name = name + } +} + +struct UpdateConfiguredTableInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? +} + +extension UpdateConfiguredTableInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case description + case name + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + } +} + +extension UpdateConfiguredTableOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateConfiguredTableOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateConfiguredTableOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateConfiguredTableOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateConfiguredTableOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.configuredTable = output.configuredTable + } else { + self.configuredTable = nil + } + } +} + +public struct UpdateConfiguredTableOutputResponse: Swift.Equatable { + /// The updated configured table. + /// This member is required. + public var configuredTable: CleanRoomsClientTypes.ConfiguredTable? + + public init ( + configuredTable: CleanRoomsClientTypes.ConfiguredTable? = nil + ) + { + self.configuredTable = configuredTable + } +} + +struct UpdateConfiguredTableOutputResponseBody: Swift.Equatable { + let configuredTable: CleanRoomsClientTypes.ConfiguredTable? +} + +extension UpdateConfiguredTableOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case configuredTable + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let configuredTableDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ConfiguredTable.self, forKey: .configuredTable) + configuredTable = configuredTableDecoded + } +} + +extension UpdateMembershipInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case queryLogStatus + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let queryLogStatus = self.queryLogStatus { + try encodeContainer.encode(queryLogStatus.rawValue, forKey: .queryLogStatus) + } + } +} + +extension UpdateMembershipInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())" + } +} + +public struct UpdateMembershipInput: Swift.Equatable { + /// The unique identifier of the membership. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// An indicator as to whether query logging has been enabled or disabled for the collaboration. + public var queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? + + public init ( + membershipIdentifier: Swift.String? = nil, + queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + self.queryLogStatus = queryLogStatus + } +} + +struct UpdateMembershipInputBody: Swift.Equatable { + let queryLogStatus: CleanRoomsClientTypes.MembershipQueryLogStatus? +} + +extension UpdateMembershipInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case queryLogStatus + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let queryLogStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.MembershipQueryLogStatus.self, forKey: .queryLogStatus) + queryLogStatus = queryLogStatusDecoded + } +} + +extension UpdateMembershipOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateMembershipOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateMembershipOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateMembershipOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateMembershipOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.membership = output.membership + } else { + self.membership = nil + } + } +} + +public struct UpdateMembershipOutputResponse: Swift.Equatable { + /// The membership object. + /// This member is required. + public var membership: CleanRoomsClientTypes.Membership? + + public init ( + membership: CleanRoomsClientTypes.Membership? = nil + ) + { + self.membership = membership + } +} + +struct UpdateMembershipOutputResponseBody: Swift.Equatable { + let membership: CleanRoomsClientTypes.Membership? +} + +extension UpdateMembershipOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case membership + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let membershipDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.Membership.self, forKey: .membership) + membership = membershipDecoded + } +} + +extension UpdateProtectedQueryInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case targetStatus + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let targetStatus = self.targetStatus { + try encodeContainer.encode(targetStatus.rawValue, forKey: .targetStatus) + } + } +} + +extension UpdateProtectedQueryInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let membershipIdentifier = membershipIdentifier else { + return nil + } + guard let protectedQueryIdentifier = protectedQueryIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/protectedQueries/\(protectedQueryIdentifier.urlPercentEncoding())" + } +} + +public struct UpdateProtectedQueryInput: Swift.Equatable { + /// The identifier for a member of a protected query instance. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The identifier for a protected query instance. + /// This member is required. + public var protectedQueryIdentifier: Swift.String? + /// The target status of a query. Used to update the execution status of a currently running query. + /// This member is required. + public var targetStatus: CleanRoomsClientTypes.TargetProtectedQueryStatus? + + public init ( + membershipIdentifier: Swift.String? = nil, + protectedQueryIdentifier: Swift.String? = nil, + targetStatus: CleanRoomsClientTypes.TargetProtectedQueryStatus? = nil + ) + { + self.membershipIdentifier = membershipIdentifier + self.protectedQueryIdentifier = protectedQueryIdentifier + self.targetStatus = targetStatus + } +} + +struct UpdateProtectedQueryInputBody: Swift.Equatable { + let targetStatus: CleanRoomsClientTypes.TargetProtectedQueryStatus? +} + +extension UpdateProtectedQueryInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case targetStatus + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let targetStatusDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.TargetProtectedQueryStatus.self, forKey: .targetStatus) + targetStatus = targetStatusDecoded + } +} + +extension UpdateProtectedQueryOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateProtectedQueryOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateProtectedQueryOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateProtectedQueryOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateProtectedQueryOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.protectedQuery = output.protectedQuery + } else { + self.protectedQuery = nil + } + } +} + +public struct UpdateProtectedQueryOutputResponse: Swift.Equatable { + /// The protected query output. + /// This member is required. + public var protectedQuery: CleanRoomsClientTypes.ProtectedQuery? + + public init ( + protectedQuery: CleanRoomsClientTypes.ProtectedQuery? = nil + ) + { + self.protectedQuery = protectedQuery + } +} + +struct UpdateProtectedQueryOutputResponseBody: Swift.Equatable { + let protectedQuery: CleanRoomsClientTypes.ProtectedQuery? +} + +extension UpdateProtectedQueryOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case protectedQuery + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let protectedQueryDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ProtectedQuery.self, forKey: .protectedQuery) + protectedQuery = protectedQueryDecoded + } +} + +extension ValidationException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ValidationExceptionBody = try responseDecoder.decode(responseBody: data) + self.fieldList = output.fieldList + self.message = output.message + self.reason = output.reason + } else { + self.fieldList = nil + self.message = nil + self.reason = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The input fails to satisfy the specified constraints. +public struct ValidationException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + /// Validation errors for specific input parameters. + public var fieldList: [CleanRoomsClientTypes.ValidationExceptionField]? + public var message: Swift.String? + /// A reason code for the exception. + public var reason: CleanRoomsClientTypes.ValidationExceptionReason? + + public init ( + fieldList: [CleanRoomsClientTypes.ValidationExceptionField]? = nil, + message: Swift.String? = nil, + reason: CleanRoomsClientTypes.ValidationExceptionReason? = nil + ) + { + self.fieldList = fieldList + self.message = message + self.reason = reason + } +} + +struct ValidationExceptionBody: Swift.Equatable { + let message: Swift.String? + let reason: CleanRoomsClientTypes.ValidationExceptionReason? + let fieldList: [CleanRoomsClientTypes.ValidationExceptionField]? +} + +extension ValidationExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case fieldList + case message + case reason + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + let reasonDecoded = try containerValues.decodeIfPresent(CleanRoomsClientTypes.ValidationExceptionReason.self, forKey: .reason) + reason = reasonDecoded + let fieldListContainer = try containerValues.decodeIfPresent([CleanRoomsClientTypes.ValidationExceptionField?].self, forKey: .fieldList) + var fieldListDecoded0:[CleanRoomsClientTypes.ValidationExceptionField]? = nil + if let fieldListContainer = fieldListContainer { + fieldListDecoded0 = [CleanRoomsClientTypes.ValidationExceptionField]() + for structure0 in fieldListContainer { + if let structure0 = structure0 { + fieldListDecoded0?.append(structure0) + } + } + } + fieldList = fieldListDecoded0 + } +} + +extension CleanRoomsClientTypes.ValidationExceptionField: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + case name + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let message = self.message { + try encodeContainer.encode(message, forKey: .message) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension CleanRoomsClientTypes { + /// Describes validation errors for specific input parameters. + public struct ValidationExceptionField: Swift.Equatable { + /// A message for the input validation error. + /// This member is required. + public var message: Swift.String? + /// The name of the input parameter. + /// This member is required. + public var name: Swift.String? + + public init ( + message: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.message = message + self.name = name + } + } + +} + +extension CleanRoomsClientTypes { + public enum ValidationExceptionReason: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case fieldValidationFailed + case invalidConfiguration + case sdkUnknown(Swift.String) + + public static var allCases: [ValidationExceptionReason] { + return [ + .fieldValidationFailed, + .invalidConfiguration, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .fieldValidationFailed: return "FIELD_VALIDATION_FAILED" + case .invalidConfiguration: return "INVALID_CONFIGURATION" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ValidationExceptionReason(rawValue: rawValue) ?? ValidationExceptionReason.sdkUnknown(rawValue) + } + } +} diff --git a/Sources/Services/AWSCloud9/Cloud9Client.swift b/Sources/Services/AWSCloud9/Cloud9Client.swift index e71a3776a0e..06d4d10a56d 100644 --- a/Sources/Services/AWSCloud9/Cloud9Client.swift +++ b/Sources/Services/AWSCloud9/Cloud9Client.swift @@ -224,7 +224,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "createEnvironmentEC2") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -260,7 +263,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "createEnvironmentMembership") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -296,7 +302,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -332,7 +341,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteEnvironmentMembership") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -368,7 +380,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeEnvironmentMemberships") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -404,7 +419,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeEnvironmentStatus") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -440,7 +458,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeEnvironments") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -476,7 +497,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "listEnvironments") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -512,7 +536,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -548,7 +575,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -584,7 +614,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -620,7 +653,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -656,7 +692,10 @@ extension Cloud9Client: Cloud9ClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateEnvironmentMembership") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSCloud9/EndpointResolver.swift b/Sources/Services/AWSCloud9/EndpointResolver.swift index b0a943a699f..fbd786454e4 100644 --- a/Sources/Services/AWSCloud9/EndpointResolver.swift +++ b/Sources/Services/AWSCloud9/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloud9.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSCloud9/Paginators.swift b/Sources/Services/AWSCloud9/Paginators.swift index 418547c5fe7..e0d916ecbbd 100644 --- a/Sources/Services/AWSCloud9/Paginators.swift +++ b/Sources/Services/AWSCloud9/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeEnvironmentMembershipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEnvironmentMembershipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEnvironmentMembershipsOutputResponse` extension Cloud9Client { + /// Paginate over `[DescribeEnvironmentMembershipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEnvironmentMembershipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEnvironmentMembershipsOutputResponse` public func describeEnvironmentMembershipsPaginated(input: DescribeEnvironmentMembershipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEnvironmentMembershipsInput.nextToken, outputKey: \DescribeEnvironmentMembershipsOutputResponse.nextToken, paginationFunction: self.describeEnvironmentMemberships(input:)) } @@ -27,16 +26,15 @@ extension DescribeEnvironmentMembershipsInput: ClientRuntime.PaginateToken { userArn: self.userArn )} } - -/// Paginate over `[ListEnvironmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnvironmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` extension Cloud9Client { + /// Paginate over `[ListEnvironmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnvironmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` public func listEnvironmentsPaginated(input: ListEnvironmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnvironmentsInput.nextToken, outputKey: \ListEnvironmentsOutputResponse.nextToken, paginationFunction: self.listEnvironments(input:)) } diff --git a/Sources/Services/AWSCloudControl/Paginators.swift b/Sources/Services/AWSCloudControl/Paginators.swift index f72a4fb70da..682630c537a 100644 --- a/Sources/Services/AWSCloudControl/Paginators.swift +++ b/Sources/Services/AWSCloudControl/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListResourceRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceRequestsOutputResponse` extension CloudControlClient { + /// Paginate over `[ListResourceRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceRequestsOutputResponse` public func listResourceRequestsPaginated(input: ListResourceRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceRequestsInput.nextToken, outputKey: \ListResourceRequestsOutputResponse.nextToken, paginationFunction: self.listResourceRequests(input:)) } @@ -26,24 +25,23 @@ extension ListResourceRequestsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceRequestsPaginated` -/// to access the nested member `[CloudControlClientTypes.ProgressEvent]` -/// - Returns: `[CloudControlClientTypes.ProgressEvent]` extension PaginatorSequence where Input == ListResourceRequestsInput, Output == ListResourceRequestsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceRequestsPaginated` + /// to access the nested member `[CloudControlClientTypes.ProgressEvent]` + /// - Returns: `[CloudControlClientTypes.ProgressEvent]` public func resourceRequestStatusSummaries() async throws -> [CloudControlClientTypes.ProgressEvent] { return try await self.asyncCompactMap { item in item.resourceRequestStatusSummaries } } } - -/// Paginate over `[ListResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` extension CloudControlClient { + /// Paginate over `[ListResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` public func listResourcesPaginated(input: ListResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesInput.nextToken, outputKey: \ListResourcesOutputResponse.nextToken, paginationFunction: self.listResources(input:)) } @@ -61,10 +59,10 @@ extension ListResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourcesPaginated` -/// to access the nested member `[CloudControlClientTypes.ResourceDescription]` -/// - Returns: `[CloudControlClientTypes.ResourceDescription]` extension PaginatorSequence where Input == ListResourcesInput, Output == ListResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourcesPaginated` + /// to access the nested member `[CloudControlClientTypes.ResourceDescription]` + /// - Returns: `[CloudControlClientTypes.ResourceDescription]` public func resourceDescriptions() async throws -> [CloudControlClientTypes.ResourceDescription] { return try await self.asyncCompactMap { item in item.resourceDescriptions } } diff --git a/Sources/Services/AWSCloudDirectory/Paginators.swift b/Sources/Services/AWSCloudDirectory/Paginators.swift index 86b61137913..b44e4770e64 100644 --- a/Sources/Services/AWSCloudDirectory/Paginators.swift +++ b/Sources/Services/AWSCloudDirectory/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAppliedSchemaArnsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppliedSchemaArnsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppliedSchemaArnsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListAppliedSchemaArnsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppliedSchemaArnsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppliedSchemaArnsOutputResponse` public func listAppliedSchemaArnsPaginated(input: ListAppliedSchemaArnsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppliedSchemaArnsInput.nextToken, outputKey: \ListAppliedSchemaArnsOutputResponse.nextToken, paginationFunction: self.listAppliedSchemaArns(input:)) } @@ -26,16 +25,15 @@ extension ListAppliedSchemaArnsInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListAttachedIndicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedIndicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedIndicesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListAttachedIndicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedIndicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedIndicesOutputResponse` public func listAttachedIndicesPaginated(input: ListAttachedIndicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedIndicesInput.nextToken, outputKey: \ListAttachedIndicesOutputResponse.nextToken, paginationFunction: self.listAttachedIndices(input:)) } @@ -51,16 +49,15 @@ extension ListAttachedIndicesInput: ClientRuntime.PaginateToken { targetReference: self.targetReference )} } - -/// Paginate over `[ListDevelopmentSchemaArnsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevelopmentSchemaArnsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevelopmentSchemaArnsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListDevelopmentSchemaArnsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevelopmentSchemaArnsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevelopmentSchemaArnsOutputResponse` public func listDevelopmentSchemaArnsPaginated(input: ListDevelopmentSchemaArnsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevelopmentSchemaArnsInput.nextToken, outputKey: \ListDevelopmentSchemaArnsOutputResponse.nextToken, paginationFunction: self.listDevelopmentSchemaArns(input:)) } @@ -73,16 +70,15 @@ extension ListDevelopmentSchemaArnsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDirectoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDirectoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDirectoriesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListDirectoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDirectoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDirectoriesOutputResponse` public func listDirectoriesPaginated(input: ListDirectoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDirectoriesInput.nextToken, outputKey: \ListDirectoriesOutputResponse.nextToken, paginationFunction: self.listDirectories(input:)) } @@ -96,16 +92,15 @@ extension ListDirectoriesInput: ClientRuntime.PaginateToken { state: self.state )} } - -/// Paginate over `[ListFacetAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFacetAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFacetAttributesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListFacetAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFacetAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFacetAttributesOutputResponse` public func listFacetAttributesPaginated(input: ListFacetAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFacetAttributesInput.nextToken, outputKey: \ListFacetAttributesOutputResponse.nextToken, paginationFunction: self.listFacetAttributes(input:)) } @@ -120,16 +115,15 @@ extension ListFacetAttributesInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListFacetNamesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFacetNamesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFacetNamesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListFacetNamesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFacetNamesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFacetNamesOutputResponse` public func listFacetNamesPaginated(input: ListFacetNamesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFacetNamesInput.nextToken, outputKey: \ListFacetNamesOutputResponse.nextToken, paginationFunction: self.listFacetNames(input:)) } @@ -143,16 +137,15 @@ extension ListFacetNamesInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListIndexOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIndexInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIndexOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListIndexOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIndexInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIndexOutputResponse` public func listIndexPaginated(input: ListIndexInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIndexInput.nextToken, outputKey: \ListIndexOutputResponse.nextToken, paginationFunction: self.listIndex(input:)) } @@ -169,16 +162,15 @@ extension ListIndexInput: ClientRuntime.PaginateToken { rangesOnIndexedValues: self.rangesOnIndexedValues )} } - -/// Paginate over `[ListManagedSchemaArnsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListManagedSchemaArnsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListManagedSchemaArnsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListManagedSchemaArnsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedSchemaArnsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedSchemaArnsOutputResponse` public func listManagedSchemaArnsPaginated(input: ListManagedSchemaArnsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedSchemaArnsInput.nextToken, outputKey: \ListManagedSchemaArnsOutputResponse.nextToken, paginationFunction: self.listManagedSchemaArns(input:)) } @@ -192,16 +184,15 @@ extension ListManagedSchemaArnsInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListObjectAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectAttributesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListObjectAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectAttributesOutputResponse` public func listObjectAttributesPaginated(input: ListObjectAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectAttributesInput.nextToken, outputKey: \ListObjectAttributesOutputResponse.nextToken, paginationFunction: self.listObjectAttributes(input:)) } @@ -218,16 +209,15 @@ extension ListObjectAttributesInput: ClientRuntime.PaginateToken { objectReference: self.objectReference )} } - -/// Paginate over `[ListObjectChildrenOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectChildrenInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectChildrenOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListObjectChildrenOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectChildrenInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectChildrenOutputResponse` public func listObjectChildrenPaginated(input: ListObjectChildrenInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectChildrenInput.nextToken, outputKey: \ListObjectChildrenOutputResponse.nextToken, paginationFunction: self.listObjectChildren(input:)) } @@ -243,16 +233,15 @@ extension ListObjectChildrenInput: ClientRuntime.PaginateToken { objectReference: self.objectReference )} } - -/// Paginate over `[ListObjectParentPathsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectParentPathsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectParentPathsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListObjectParentPathsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectParentPathsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectParentPathsOutputResponse` public func listObjectParentPathsPaginated(input: ListObjectParentPathsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectParentPathsInput.nextToken, outputKey: \ListObjectParentPathsOutputResponse.nextToken, paginationFunction: self.listObjectParentPaths(input:)) } @@ -267,16 +256,15 @@ extension ListObjectParentPathsInput: ClientRuntime.PaginateToken { objectReference: self.objectReference )} } - -/// Paginate over `[ListObjectParentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectParentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectParentsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListObjectParentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectParentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectParentsOutputResponse` public func listObjectParentsPaginated(input: ListObjectParentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectParentsInput.nextToken, outputKey: \ListObjectParentsOutputResponse.nextToken, paginationFunction: self.listObjectParents(input:)) } @@ -293,16 +281,15 @@ extension ListObjectParentsInput: ClientRuntime.PaginateToken { objectReference: self.objectReference )} } - -/// Paginate over `[ListObjectPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectPoliciesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListObjectPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectPoliciesOutputResponse` public func listObjectPoliciesPaginated(input: ListObjectPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectPoliciesInput.nextToken, outputKey: \ListObjectPoliciesOutputResponse.nextToken, paginationFunction: self.listObjectPolicies(input:)) } @@ -318,16 +305,15 @@ extension ListObjectPoliciesInput: ClientRuntime.PaginateToken { objectReference: self.objectReference )} } - -/// Paginate over `[ListPolicyAttachmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPolicyAttachmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPolicyAttachmentsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListPolicyAttachmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPolicyAttachmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPolicyAttachmentsOutputResponse` public func listPolicyAttachmentsPaginated(input: ListPolicyAttachmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPolicyAttachmentsInput.nextToken, outputKey: \ListPolicyAttachmentsOutputResponse.nextToken, paginationFunction: self.listPolicyAttachments(input:)) } @@ -343,16 +329,15 @@ extension ListPolicyAttachmentsInput: ClientRuntime.PaginateToken { policyReference: self.policyReference )} } - -/// Paginate over `[ListPublishedSchemaArnsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPublishedSchemaArnsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPublishedSchemaArnsOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListPublishedSchemaArnsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPublishedSchemaArnsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPublishedSchemaArnsOutputResponse` public func listPublishedSchemaArnsPaginated(input: ListPublishedSchemaArnsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPublishedSchemaArnsInput.nextToken, outputKey: \ListPublishedSchemaArnsOutputResponse.nextToken, paginationFunction: self.listPublishedSchemaArns(input:)) } @@ -366,16 +351,15 @@ extension ListPublishedSchemaArnsInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -389,16 +373,15 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { resourceArn: self.resourceArn )} } - -/// Paginate over `[ListTypedLinkFacetAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTypedLinkFacetAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTypedLinkFacetAttributesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListTypedLinkFacetAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTypedLinkFacetAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTypedLinkFacetAttributesOutputResponse` public func listTypedLinkFacetAttributesPaginated(input: ListTypedLinkFacetAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTypedLinkFacetAttributesInput.nextToken, outputKey: \ListTypedLinkFacetAttributesOutputResponse.nextToken, paginationFunction: self.listTypedLinkFacetAttributes(input:)) } @@ -413,16 +396,15 @@ extension ListTypedLinkFacetAttributesInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[ListTypedLinkFacetNamesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTypedLinkFacetNamesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTypedLinkFacetNamesOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[ListTypedLinkFacetNamesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTypedLinkFacetNamesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTypedLinkFacetNamesOutputResponse` public func listTypedLinkFacetNamesPaginated(input: ListTypedLinkFacetNamesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTypedLinkFacetNamesInput.nextToken, outputKey: \ListTypedLinkFacetNamesOutputResponse.nextToken, paginationFunction: self.listTypedLinkFacetNames(input:)) } @@ -436,16 +418,15 @@ extension ListTypedLinkFacetNamesInput: ClientRuntime.PaginateToken { schemaArn: self.schemaArn )} } - -/// Paginate over `[LookupPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[LookupPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `LookupPolicyOutputResponse` extension CloudDirectoryClient { + /// Paginate over `[LookupPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[LookupPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `LookupPolicyOutputResponse` public func lookupPolicyPaginated(input: LookupPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \LookupPolicyInput.nextToken, outputKey: \LookupPolicyOutputResponse.nextToken, paginationFunction: self.lookupPolicy(input:)) } diff --git a/Sources/Services/AWSCloudFormation/Paginators.swift b/Sources/Services/AWSCloudFormation/Paginators.swift index 8d85009a5e2..702d51bdf20 100644 --- a/Sources/Services/AWSCloudFormation/Paginators.swift +++ b/Sources/Services/AWSCloudFormation/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAccountLimitsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAccountLimitsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountLimitsOutputResponse` extension CloudFormationClient { + /// Paginate over `[DescribeAccountLimitsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAccountLimitsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountLimitsOutputResponse` public func describeAccountLimitsPaginated(input: DescribeAccountLimitsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAccountLimitsInput.nextToken, outputKey: \DescribeAccountLimitsOutputResponse.nextToken, paginationFunction: self.describeAccountLimits(input:)) } @@ -24,24 +23,23 @@ extension DescribeAccountLimitsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAccountLimitsPaginated` -/// to access the nested member `[CloudFormationClientTypes.AccountLimit]` -/// - Returns: `[CloudFormationClientTypes.AccountLimit]` extension PaginatorSequence where Input == DescribeAccountLimitsInput, Output == DescribeAccountLimitsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAccountLimitsPaginated` + /// to access the nested member `[CloudFormationClientTypes.AccountLimit]` + /// - Returns: `[CloudFormationClientTypes.AccountLimit]` public func accountLimits() async throws -> [CloudFormationClientTypes.AccountLimit] { return try await self.asyncCompactMap { item in item.accountLimits } } } - -/// Paginate over `[DescribeStackEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStackEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStackEventsOutputResponse` extension CloudFormationClient { + /// Paginate over `[DescribeStackEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStackEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStackEventsOutputResponse` public func describeStackEventsPaginated(input: DescribeStackEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStackEventsInput.nextToken, outputKey: \DescribeStackEventsOutputResponse.nextToken, paginationFunction: self.describeStackEvents(input:)) } @@ -55,24 +53,23 @@ extension DescribeStackEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStackEventsPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackEvent]` -/// - Returns: `[CloudFormationClientTypes.StackEvent]` extension PaginatorSequence where Input == DescribeStackEventsInput, Output == DescribeStackEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStackEventsPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackEvent]` + /// - Returns: `[CloudFormationClientTypes.StackEvent]` public func stackEvents() async throws -> [CloudFormationClientTypes.StackEvent] { return try await self.asyncCompactMap { item in item.stackEvents } } } - -/// Paginate over `[DescribeStackResourceDriftsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStackResourceDriftsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStackResourceDriftsOutputResponse` extension CloudFormationClient { + /// Paginate over `[DescribeStackResourceDriftsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStackResourceDriftsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStackResourceDriftsOutputResponse` public func describeStackResourceDriftsPaginated(input: DescribeStackResourceDriftsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStackResourceDriftsInput.nextToken, outputKey: \DescribeStackResourceDriftsOutputResponse.nextToken, paginationFunction: self.describeStackResourceDrifts(input:)) } @@ -87,16 +84,15 @@ extension DescribeStackResourceDriftsInput: ClientRuntime.PaginateToken { stackResourceDriftStatusFilters: self.stackResourceDriftStatusFilters )} } - -/// Paginate over `[DescribeStacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStacksOutputResponse` extension CloudFormationClient { + /// Paginate over `[DescribeStacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStacksOutputResponse` public func describeStacksPaginated(input: DescribeStacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStacksInput.nextToken, outputKey: \DescribeStacksOutputResponse.nextToken, paginationFunction: self.describeStacks(input:)) } @@ -110,24 +106,23 @@ extension DescribeStacksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStacksPaginated` -/// to access the nested member `[CloudFormationClientTypes.Stack]` -/// - Returns: `[CloudFormationClientTypes.Stack]` extension PaginatorSequence where Input == DescribeStacksInput, Output == DescribeStacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStacksPaginated` + /// to access the nested member `[CloudFormationClientTypes.Stack]` + /// - Returns: `[CloudFormationClientTypes.Stack]` public func stacks() async throws -> [CloudFormationClientTypes.Stack] { return try await self.asyncCompactMap { item in item.stacks } } } - -/// Paginate over `[ListChangeSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChangeSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChangeSetsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListChangeSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChangeSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChangeSetsOutputResponse` public func listChangeSetsPaginated(input: ListChangeSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChangeSetsInput.nextToken, outputKey: \ListChangeSetsOutputResponse.nextToken, paginationFunction: self.listChangeSets(input:)) } @@ -141,24 +136,23 @@ extension ListChangeSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listChangeSetsPaginated` -/// to access the nested member `[CloudFormationClientTypes.ChangeSetSummary]` -/// - Returns: `[CloudFormationClientTypes.ChangeSetSummary]` extension PaginatorSequence where Input == ListChangeSetsInput, Output == ListChangeSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listChangeSetsPaginated` + /// to access the nested member `[CloudFormationClientTypes.ChangeSetSummary]` + /// - Returns: `[CloudFormationClientTypes.ChangeSetSummary]` public func summaries() async throws -> [CloudFormationClientTypes.ChangeSetSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` public func listExportsPaginated(input: ListExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExportsInput.nextToken, outputKey: \ListExportsOutputResponse.nextToken, paginationFunction: self.listExports(input:)) } @@ -171,24 +165,23 @@ extension ListExportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExportsPaginated` -/// to access the nested member `[CloudFormationClientTypes.Export]` -/// - Returns: `[CloudFormationClientTypes.Export]` extension PaginatorSequence where Input == ListExportsInput, Output == ListExportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExportsPaginated` + /// to access the nested member `[CloudFormationClientTypes.Export]` + /// - Returns: `[CloudFormationClientTypes.Export]` public func exports() async throws -> [CloudFormationClientTypes.Export] { return try await self.asyncCompactMap { item in item.exports } } } - -/// Paginate over `[ListImportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListImportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` public func listImportsPaginated(input: ListImportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportsInput.nextToken, outputKey: \ListImportsOutputResponse.nextToken, paginationFunction: self.listImports(input:)) } @@ -202,24 +195,23 @@ extension ListImportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImportsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListImportsInput, Output == ListImportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImportsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func imports() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.imports } } } - -/// Paginate over `[ListStackInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStackInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStackInstancesOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStackInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStackInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStackInstancesOutputResponse` public func listStackInstancesPaginated(input: ListStackInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStackInstancesInput.nextToken, outputKey: \ListStackInstancesOutputResponse.nextToken, paginationFunction: self.listStackInstances(input:)) } @@ -238,24 +230,23 @@ extension ListStackInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStackInstancesPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackInstanceSummary]` -/// - Returns: `[CloudFormationClientTypes.StackInstanceSummary]` extension PaginatorSequence where Input == ListStackInstancesInput, Output == ListStackInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStackInstancesPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackInstanceSummary]` + /// - Returns: `[CloudFormationClientTypes.StackInstanceSummary]` public func summaries() async throws -> [CloudFormationClientTypes.StackInstanceSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListStackResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStackResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStackResourcesOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStackResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStackResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStackResourcesOutputResponse` public func listStackResourcesPaginated(input: ListStackResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStackResourcesInput.nextToken, outputKey: \ListStackResourcesOutputResponse.nextToken, paginationFunction: self.listStackResources(input:)) } @@ -269,24 +260,23 @@ extension ListStackResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStackResourcesPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackResourceSummary]` -/// - Returns: `[CloudFormationClientTypes.StackResourceSummary]` extension PaginatorSequence where Input == ListStackResourcesInput, Output == ListStackResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStackResourcesPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackResourceSummary]` + /// - Returns: `[CloudFormationClientTypes.StackResourceSummary]` public func stackResourceSummaries() async throws -> [CloudFormationClientTypes.StackResourceSummary] { return try await self.asyncCompactMap { item in item.stackResourceSummaries } } } - -/// Paginate over `[ListStacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStacksOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStacksOutputResponse` public func listStacksPaginated(input: ListStacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStacksInput.nextToken, outputKey: \ListStacksOutputResponse.nextToken, paginationFunction: self.listStacks(input:)) } @@ -300,24 +290,23 @@ extension ListStacksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStacksPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackSummary]` -/// - Returns: `[CloudFormationClientTypes.StackSummary]` extension PaginatorSequence where Input == ListStacksInput, Output == ListStacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStacksPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackSummary]` + /// - Returns: `[CloudFormationClientTypes.StackSummary]` public func stackSummaries() async throws -> [CloudFormationClientTypes.StackSummary] { return try await self.asyncCompactMap { item in item.stackSummaries } } } - -/// Paginate over `[ListStackSetOperationResultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStackSetOperationResultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStackSetOperationResultsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStackSetOperationResultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStackSetOperationResultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStackSetOperationResultsOutputResponse` public func listStackSetOperationResultsPaginated(input: ListStackSetOperationResultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStackSetOperationResultsInput.nextToken, outputKey: \ListStackSetOperationResultsOutputResponse.nextToken, paginationFunction: self.listStackSetOperationResults(input:)) } @@ -335,24 +324,23 @@ extension ListStackSetOperationResultsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStackSetOperationResultsPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackSetOperationResultSummary]` -/// - Returns: `[CloudFormationClientTypes.StackSetOperationResultSummary]` extension PaginatorSequence where Input == ListStackSetOperationResultsInput, Output == ListStackSetOperationResultsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStackSetOperationResultsPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackSetOperationResultSummary]` + /// - Returns: `[CloudFormationClientTypes.StackSetOperationResultSummary]` public func summaries() async throws -> [CloudFormationClientTypes.StackSetOperationResultSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListStackSetOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStackSetOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStackSetOperationsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStackSetOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStackSetOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStackSetOperationsOutputResponse` public func listStackSetOperationsPaginated(input: ListStackSetOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStackSetOperationsInput.nextToken, outputKey: \ListStackSetOperationsOutputResponse.nextToken, paginationFunction: self.listStackSetOperations(input:)) } @@ -368,24 +356,23 @@ extension ListStackSetOperationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStackSetOperationsPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackSetOperationSummary]` -/// - Returns: `[CloudFormationClientTypes.StackSetOperationSummary]` extension PaginatorSequence where Input == ListStackSetOperationsInput, Output == ListStackSetOperationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStackSetOperationsPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackSetOperationSummary]` + /// - Returns: `[CloudFormationClientTypes.StackSetOperationSummary]` public func summaries() async throws -> [CloudFormationClientTypes.StackSetOperationSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListStackSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStackSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStackSetsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListStackSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStackSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStackSetsOutputResponse` public func listStackSetsPaginated(input: ListStackSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStackSetsInput.nextToken, outputKey: \ListStackSetsOutputResponse.nextToken, paginationFunction: self.listStackSets(input:)) } @@ -401,24 +388,23 @@ extension ListStackSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStackSetsPaginated` -/// to access the nested member `[CloudFormationClientTypes.StackSetSummary]` -/// - Returns: `[CloudFormationClientTypes.StackSetSummary]` extension PaginatorSequence where Input == ListStackSetsInput, Output == ListStackSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStackSetsPaginated` + /// to access the nested member `[CloudFormationClientTypes.StackSetSummary]` + /// - Returns: `[CloudFormationClientTypes.StackSetSummary]` public func summaries() async throws -> [CloudFormationClientTypes.StackSetSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListTypeRegistrationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTypeRegistrationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTypeRegistrationsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListTypeRegistrationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTypeRegistrationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTypeRegistrationsOutputResponse` public func listTypeRegistrationsPaginated(input: ListTypeRegistrationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTypeRegistrationsInput.nextToken, outputKey: \ListTypeRegistrationsOutputResponse.nextToken, paginationFunction: self.listTypeRegistrations(input:)) } @@ -435,16 +421,15 @@ extension ListTypeRegistrationsInput: ClientRuntime.PaginateToken { typeName: self.typeName )} } - -/// Paginate over `[ListTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTypesOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTypesOutputResponse` public func listTypesPaginated(input: ListTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTypesInput.nextToken, outputKey: \ListTypesOutputResponse.nextToken, paginationFunction: self.listTypes(input:)) } @@ -463,24 +448,23 @@ extension ListTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTypesPaginated` -/// to access the nested member `[CloudFormationClientTypes.TypeSummary]` -/// - Returns: `[CloudFormationClientTypes.TypeSummary]` extension PaginatorSequence where Input == ListTypesInput, Output == ListTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTypesPaginated` + /// to access the nested member `[CloudFormationClientTypes.TypeSummary]` + /// - Returns: `[CloudFormationClientTypes.TypeSummary]` public func typeSummaries() async throws -> [CloudFormationClientTypes.TypeSummary] { return try await self.asyncCompactMap { item in item.typeSummaries } } } - -/// Paginate over `[ListTypeVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTypeVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTypeVersionsOutputResponse` extension CloudFormationClient { + /// Paginate over `[ListTypeVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTypeVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTypeVersionsOutputResponse` public func listTypeVersionsPaginated(input: ListTypeVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTypeVersionsInput.nextToken, outputKey: \ListTypeVersionsOutputResponse.nextToken, paginationFunction: self.listTypeVersions(input:)) } diff --git a/Sources/Services/AWSCloudFront/EndpointResolver.swift b/Sources/Services/AWSCloudFront/EndpointResolver.swift index 8fa843a1961..2bf5c90207e 100644 --- a/Sources/Services/AWSCloudFront/EndpointResolver.swift +++ b/Sources/Services/AWSCloudFront/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://cloudfront.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://cloudfront.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"cloudfront\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://cloudfront.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://cloudfront.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"cloudfront\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://cloudfront.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSCloudFront/Paginators.swift b/Sources/Services/AWSCloudFront/Paginators.swift index 9873f1e95a5..90a8c431650 100644 --- a/Sources/Services/AWSCloudFront/Paginators.swift +++ b/Sources/Services/AWSCloudFront/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCloudFrontOriginAccessIdentitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCloudFrontOriginAccessIdentitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCloudFrontOriginAccessIdentitiesOutputResponse` extension CloudFrontClient { + /// Paginate over `[ListCloudFrontOriginAccessIdentitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCloudFrontOriginAccessIdentitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCloudFrontOriginAccessIdentitiesOutputResponse` public func listCloudFrontOriginAccessIdentitiesPaginated(input: ListCloudFrontOriginAccessIdentitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCloudFrontOriginAccessIdentitiesInput.marker, outputKey: \ListCloudFrontOriginAccessIdentitiesOutputResponse.cloudFrontOriginAccessIdentityList?.nextMarker, paginationFunction: self.listCloudFrontOriginAccessIdentities(input:)) } @@ -25,24 +24,23 @@ extension ListCloudFrontOriginAccessIdentitiesInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listCloudFrontOriginAccessIdentitiesPaginated` -/// to access the nested member `[CloudFrontClientTypes.CloudFrontOriginAccessIdentitySummary]` -/// - Returns: `[CloudFrontClientTypes.CloudFrontOriginAccessIdentitySummary]` extension PaginatorSequence where Input == ListCloudFrontOriginAccessIdentitiesInput, Output == ListCloudFrontOriginAccessIdentitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCloudFrontOriginAccessIdentitiesPaginated` + /// to access the nested member `[CloudFrontClientTypes.CloudFrontOriginAccessIdentitySummary]` + /// - Returns: `[CloudFrontClientTypes.CloudFrontOriginAccessIdentitySummary]` public func items() async throws -> [CloudFrontClientTypes.CloudFrontOriginAccessIdentitySummary] { return try await self.asyncCompactMap { item in item.cloudFrontOriginAccessIdentityList?.items } } } - -/// Paginate over `[ListDistributionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDistributionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDistributionsOutputResponse` extension CloudFrontClient { + /// Paginate over `[ListDistributionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDistributionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDistributionsOutputResponse` public func listDistributionsPaginated(input: ListDistributionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDistributionsInput.marker, outputKey: \ListDistributionsOutputResponse.distributionList?.nextMarker, paginationFunction: self.listDistributions(input:)) } @@ -56,24 +54,23 @@ extension ListDistributionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDistributionsPaginated` -/// to access the nested member `[CloudFrontClientTypes.DistributionSummary]` -/// - Returns: `[CloudFrontClientTypes.DistributionSummary]` extension PaginatorSequence where Input == ListDistributionsInput, Output == ListDistributionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDistributionsPaginated` + /// to access the nested member `[CloudFrontClientTypes.DistributionSummary]` + /// - Returns: `[CloudFrontClientTypes.DistributionSummary]` public func items() async throws -> [CloudFrontClientTypes.DistributionSummary] { return try await self.asyncCompactMap { item in item.distributionList?.items } } } - -/// Paginate over `[ListInvalidationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvalidationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvalidationsOutputResponse` extension CloudFrontClient { + /// Paginate over `[ListInvalidationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvalidationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvalidationsOutputResponse` public func listInvalidationsPaginated(input: ListInvalidationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvalidationsInput.marker, outputKey: \ListInvalidationsOutputResponse.invalidationList?.nextMarker, paginationFunction: self.listInvalidations(input:)) } @@ -88,24 +85,23 @@ extension ListInvalidationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInvalidationsPaginated` -/// to access the nested member `[CloudFrontClientTypes.InvalidationSummary]` -/// - Returns: `[CloudFrontClientTypes.InvalidationSummary]` extension PaginatorSequence where Input == ListInvalidationsInput, Output == ListInvalidationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInvalidationsPaginated` + /// to access the nested member `[CloudFrontClientTypes.InvalidationSummary]` + /// - Returns: `[CloudFrontClientTypes.InvalidationSummary]` public func items() async throws -> [CloudFrontClientTypes.InvalidationSummary] { return try await self.asyncCompactMap { item in item.invalidationList?.items } } } - -/// Paginate over `[ListStreamingDistributionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamingDistributionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamingDistributionsOutputResponse` extension CloudFrontClient { + /// Paginate over `[ListStreamingDistributionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamingDistributionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamingDistributionsOutputResponse` public func listStreamingDistributionsPaginated(input: ListStreamingDistributionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamingDistributionsInput.marker, outputKey: \ListStreamingDistributionsOutputResponse.streamingDistributionList?.nextMarker, paginationFunction: self.listStreamingDistributions(input:)) } @@ -119,10 +115,10 @@ extension ListStreamingDistributionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStreamingDistributionsPaginated` -/// to access the nested member `[CloudFrontClientTypes.StreamingDistributionSummary]` -/// - Returns: `[CloudFrontClientTypes.StreamingDistributionSummary]` extension PaginatorSequence where Input == ListStreamingDistributionsInput, Output == ListStreamingDistributionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStreamingDistributionsPaginated` + /// to access the nested member `[CloudFrontClientTypes.StreamingDistributionSummary]` + /// - Returns: `[CloudFrontClientTypes.StreamingDistributionSummary]` public func items() async throws -> [CloudFrontClientTypes.StreamingDistributionSummary] { return try await self.asyncCompactMap { item in item.streamingDistributionList?.items } } diff --git a/Sources/Services/AWSCloudHSMV2/Paginators.swift b/Sources/Services/AWSCloudHSMV2/Paginators.swift index a2ae3200912..19224fa850e 100644 --- a/Sources/Services/AWSCloudHSMV2/Paginators.swift +++ b/Sources/Services/AWSCloudHSMV2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBackupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBackupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` extension CloudHSMV2Client { + /// Paginate over `[DescribeBackupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBackupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` public func describeBackupsPaginated(input: DescribeBackupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBackupsInput.nextToken, outputKey: \DescribeBackupsOutputResponse.nextToken, paginationFunction: self.describeBackups(input:)) } @@ -26,16 +25,15 @@ extension DescribeBackupsInput: ClientRuntime.PaginateToken { sortAscending: self.sortAscending )} } - -/// Paginate over `[DescribeClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` extension CloudHSMV2Client { + /// Paginate over `[DescribeClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` public func describeClustersPaginated(input: DescribeClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClustersInput.nextToken, outputKey: \DescribeClustersOutputResponse.nextToken, paginationFunction: self.describeClusters(input:)) } @@ -49,16 +47,15 @@ extension DescribeClustersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension CloudHSMV2Client { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } diff --git a/Sources/Services/AWSCloudTrail/Paginators.swift b/Sources/Services/AWSCloudTrail/Paginators.swift index 102700f7619..e1307abc6f0 100644 --- a/Sources/Services/AWSCloudTrail/Paginators.swift +++ b/Sources/Services/AWSCloudTrail/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetQueryResultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetQueryResultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetQueryResultsOutputResponse` extension CloudTrailClient { + /// Paginate over `[GetQueryResultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetQueryResultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetQueryResultsOutputResponse` public func getQueryResultsPaginated(input: GetQueryResultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetQueryResultsInput.nextToken, outputKey: \GetQueryResultsOutputResponse.nextToken, paginationFunction: self.getQueryResults(input:)) } @@ -26,16 +25,15 @@ extension GetQueryResultsInput: ClientRuntime.PaginateToken { queryId: self.queryId )} } - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -48,16 +46,15 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEventDataStoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventDataStoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventDataStoresOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListEventDataStoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventDataStoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventDataStoresOutputResponse` public func listEventDataStoresPaginated(input: ListEventDataStoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventDataStoresInput.nextToken, outputKey: \ListEventDataStoresOutputResponse.nextToken, paginationFunction: self.listEventDataStores(input:)) } @@ -70,16 +67,15 @@ extension ListEventDataStoresInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListImportFailuresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportFailuresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportFailuresOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListImportFailuresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportFailuresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportFailuresOutputResponse` public func listImportFailuresPaginated(input: ListImportFailuresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportFailuresInput.nextToken, outputKey: \ListImportFailuresOutputResponse.nextToken, paginationFunction: self.listImportFailures(input:)) } @@ -94,24 +90,23 @@ extension ListImportFailuresInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImportFailuresPaginated` -/// to access the nested member `[CloudTrailClientTypes.ImportFailureListItem]` -/// - Returns: `[CloudTrailClientTypes.ImportFailureListItem]` extension PaginatorSequence where Input == ListImportFailuresInput, Output == ListImportFailuresOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImportFailuresPaginated` + /// to access the nested member `[CloudTrailClientTypes.ImportFailureListItem]` + /// - Returns: `[CloudTrailClientTypes.ImportFailureListItem]` public func failures() async throws -> [CloudTrailClientTypes.ImportFailureListItem] { return try await self.asyncCompactMap { item in item.failures } } } - -/// Paginate over `[ListImportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListImportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` public func listImportsPaginated(input: ListImportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportsInput.nextToken, outputKey: \ListImportsOutputResponse.nextToken, paginationFunction: self.listImports(input:)) } @@ -127,24 +122,23 @@ extension ListImportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImportsPaginated` -/// to access the nested member `[CloudTrailClientTypes.ImportsListItem]` -/// - Returns: `[CloudTrailClientTypes.ImportsListItem]` extension PaginatorSequence where Input == ListImportsInput, Output == ListImportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImportsPaginated` + /// to access the nested member `[CloudTrailClientTypes.ImportsListItem]` + /// - Returns: `[CloudTrailClientTypes.ImportsListItem]` public func imports() async throws -> [CloudTrailClientTypes.ImportsListItem] { return try await self.asyncCompactMap { item in item.imports } } } - -/// Paginate over `[ListPublicKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPublicKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPublicKeysOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListPublicKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPublicKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPublicKeysOutputResponse` public func listPublicKeysPaginated(input: ListPublicKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPublicKeysInput.nextToken, outputKey: \ListPublicKeysOutputResponse.nextToken, paginationFunction: self.listPublicKeys(input:)) } @@ -159,24 +153,23 @@ extension ListPublicKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPublicKeysPaginated` -/// to access the nested member `[CloudTrailClientTypes.PublicKey]` -/// - Returns: `[CloudTrailClientTypes.PublicKey]` extension PaginatorSequence where Input == ListPublicKeysInput, Output == ListPublicKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPublicKeysPaginated` + /// to access the nested member `[CloudTrailClientTypes.PublicKey]` + /// - Returns: `[CloudTrailClientTypes.PublicKey]` public func publicKeyList() async throws -> [CloudTrailClientTypes.PublicKey] { return try await self.asyncCompactMap { item in item.publicKeyList } } } - -/// Paginate over `[ListQueriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueriesOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListQueriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueriesOutputResponse` public func listQueriesPaginated(input: ListQueriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueriesInput.nextToken, outputKey: \ListQueriesOutputResponse.nextToken, paginationFunction: self.listQueries(input:)) } @@ -193,16 +186,15 @@ extension ListQueriesInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } @@ -216,24 +208,23 @@ extension ListTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` -/// to access the nested member `[CloudTrailClientTypes.ResourceTag]` -/// - Returns: `[CloudTrailClientTypes.ResourceTag]` extension PaginatorSequence where Input == ListTagsInput, Output == ListTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` + /// to access the nested member `[CloudTrailClientTypes.ResourceTag]` + /// - Returns: `[CloudTrailClientTypes.ResourceTag]` public func resourceTagList() async throws -> [CloudTrailClientTypes.ResourceTag] { return try await self.asyncCompactMap { item in item.resourceTagList } } } - -/// Paginate over `[ListTrailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrailsOutputResponse` extension CloudTrailClient { + /// Paginate over `[ListTrailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrailsOutputResponse` public func listTrailsPaginated(input: ListTrailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrailsInput.nextToken, outputKey: \ListTrailsOutputResponse.nextToken, paginationFunction: self.listTrails(input:)) } @@ -246,24 +237,23 @@ extension ListTrailsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrailsPaginated` -/// to access the nested member `[CloudTrailClientTypes.TrailInfo]` -/// - Returns: `[CloudTrailClientTypes.TrailInfo]` extension PaginatorSequence where Input == ListTrailsInput, Output == ListTrailsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrailsPaginated` + /// to access the nested member `[CloudTrailClientTypes.TrailInfo]` + /// - Returns: `[CloudTrailClientTypes.TrailInfo]` public func trails() async throws -> [CloudTrailClientTypes.TrailInfo] { return try await self.asyncCompactMap { item in item.trails } } } - -/// Paginate over `[LookupEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[LookupEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `LookupEventsOutputResponse` extension CloudTrailClient { + /// Paginate over `[LookupEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[LookupEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `LookupEventsOutputResponse` public func lookupEventsPaginated(input: LookupEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \LookupEventsInput.nextToken, outputKey: \LookupEventsOutputResponse.nextToken, paginationFunction: self.lookupEvents(input:)) } @@ -281,10 +271,10 @@ extension LookupEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `lookupEventsPaginated` -/// to access the nested member `[CloudTrailClientTypes.Event]` -/// - Returns: `[CloudTrailClientTypes.Event]` extension PaginatorSequence where Input == LookupEventsInput, Output == LookupEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `lookupEventsPaginated` + /// to access the nested member `[CloudTrailClientTypes.Event]` + /// - Returns: `[CloudTrailClientTypes.Event]` public func events() async throws -> [CloudTrailClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } diff --git a/Sources/Services/AWSCloudWatch/Paginators.swift b/Sources/Services/AWSCloudWatch/Paginators.swift index aeb4df7f45f..165dca71515 100644 --- a/Sources/Services/AWSCloudWatch/Paginators.swift +++ b/Sources/Services/AWSCloudWatch/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAlarmHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAlarmHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAlarmHistoryOutputResponse` extension CloudWatchClient { + /// Paginate over `[DescribeAlarmHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAlarmHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAlarmHistoryOutputResponse` public func describeAlarmHistoryPaginated(input: DescribeAlarmHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAlarmHistoryInput.nextToken, outputKey: \DescribeAlarmHistoryOutputResponse.nextToken, paginationFunction: self.describeAlarmHistory(input:)) } @@ -31,24 +30,23 @@ extension DescribeAlarmHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAlarmHistoryPaginated` -/// to access the nested member `[CloudWatchClientTypes.AlarmHistoryItem]` -/// - Returns: `[CloudWatchClientTypes.AlarmHistoryItem]` extension PaginatorSequence where Input == DescribeAlarmHistoryInput, Output == DescribeAlarmHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAlarmHistoryPaginated` + /// to access the nested member `[CloudWatchClientTypes.AlarmHistoryItem]` + /// - Returns: `[CloudWatchClientTypes.AlarmHistoryItem]` public func alarmHistoryItems() async throws -> [CloudWatchClientTypes.AlarmHistoryItem] { return try await self.asyncCompactMap { item in item.alarmHistoryItems } } } - -/// Paginate over `[DescribeAlarmsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAlarmsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAlarmsOutputResponse` extension CloudWatchClient { + /// Paginate over `[DescribeAlarmsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAlarmsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAlarmsOutputResponse` public func describeAlarmsPaginated(input: DescribeAlarmsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAlarmsInput.nextToken, outputKey: \DescribeAlarmsOutputResponse.nextToken, paginationFunction: self.describeAlarms(input:)) } @@ -68,16 +66,15 @@ extension DescribeAlarmsInput: ClientRuntime.PaginateToken { stateValue: self.stateValue )} } - -/// Paginate over `[DescribeAnomalyDetectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAnomalyDetectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAnomalyDetectorsOutputResponse` extension CloudWatchClient { + /// Paginate over `[DescribeAnomalyDetectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAnomalyDetectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAnomalyDetectorsOutputResponse` public func describeAnomalyDetectorsPaginated(input: DescribeAnomalyDetectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAnomalyDetectorsInput.nextToken, outputKey: \DescribeAnomalyDetectorsOutputResponse.nextToken, paginationFunction: self.describeAnomalyDetectors(input:)) } @@ -95,24 +92,23 @@ extension DescribeAnomalyDetectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAnomalyDetectorsPaginated` -/// to access the nested member `[CloudWatchClientTypes.AnomalyDetector]` -/// - Returns: `[CloudWatchClientTypes.AnomalyDetector]` extension PaginatorSequence where Input == DescribeAnomalyDetectorsInput, Output == DescribeAnomalyDetectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAnomalyDetectorsPaginated` + /// to access the nested member `[CloudWatchClientTypes.AnomalyDetector]` + /// - Returns: `[CloudWatchClientTypes.AnomalyDetector]` public func anomalyDetectors() async throws -> [CloudWatchClientTypes.AnomalyDetector] { return try await self.asyncCompactMap { item in item.anomalyDetectors } } } - -/// Paginate over `[DescribeInsightRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInsightRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInsightRulesOutputResponse` extension CloudWatchClient { + /// Paginate over `[DescribeInsightRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInsightRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInsightRulesOutputResponse` public func describeInsightRulesPaginated(input: DescribeInsightRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInsightRulesInput.nextToken, outputKey: \DescribeInsightRulesOutputResponse.nextToken, paginationFunction: self.describeInsightRules(input:)) } @@ -125,16 +121,15 @@ extension DescribeInsightRulesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetMetricDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMetricDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMetricDataOutputResponse` extension CloudWatchClient { + /// Paginate over `[GetMetricDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMetricDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMetricDataOutputResponse` public func getMetricDataPaginated(input: GetMetricDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMetricDataInput.nextToken, outputKey: \GetMetricDataOutputResponse.nextToken, paginationFunction: self.getMetricData(input:)) } @@ -152,16 +147,15 @@ extension GetMetricDataInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[ListDashboardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDashboardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` extension CloudWatchClient { + /// Paginate over `[ListDashboardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDashboardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` public func listDashboardsPaginated(input: ListDashboardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDashboardsInput.nextToken, outputKey: \ListDashboardsOutputResponse.nextToken, paginationFunction: self.listDashboards(input:)) } @@ -175,24 +169,23 @@ extension ListDashboardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` -/// to access the nested member `[CloudWatchClientTypes.DashboardEntry]` -/// - Returns: `[CloudWatchClientTypes.DashboardEntry]` extension PaginatorSequence where Input == ListDashboardsInput, Output == ListDashboardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` + /// to access the nested member `[CloudWatchClientTypes.DashboardEntry]` + /// - Returns: `[CloudWatchClientTypes.DashboardEntry]` public func dashboardEntries() async throws -> [CloudWatchClientTypes.DashboardEntry] { return try await self.asyncCompactMap { item in item.dashboardEntries } } } - -/// Paginate over `[ListManagedInsightRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListManagedInsightRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListManagedInsightRulesOutputResponse` extension CloudWatchClient { + /// Paginate over `[ListManagedInsightRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedInsightRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedInsightRulesOutputResponse` public func listManagedInsightRulesPaginated(input: ListManagedInsightRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedInsightRulesInput.nextToken, outputKey: \ListManagedInsightRulesOutputResponse.nextToken, paginationFunction: self.listManagedInsightRules(input:)) } @@ -206,16 +199,15 @@ extension ListManagedInsightRulesInput: ClientRuntime.PaginateToken { resourceARN: self.resourceARN )} } - -/// Paginate over `[ListMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricsOutputResponse` extension CloudWatchClient { + /// Paginate over `[ListMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricsOutputResponse` public func listMetricsPaginated(input: ListMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricsInput.nextToken, outputKey: \ListMetricsOutputResponse.nextToken, paginationFunction: self.listMetrics(input:)) } @@ -233,16 +225,15 @@ extension ListMetricsInput: ClientRuntime.PaginateToken { recentlyActive: self.recentlyActive )} } - -/// Paginate over `[ListMetricStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricStreamsOutputResponse` extension CloudWatchClient { + /// Paginate over `[ListMetricStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricStreamsOutputResponse` public func listMetricStreamsPaginated(input: ListMetricStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricStreamsInput.nextToken, outputKey: \ListMetricStreamsOutputResponse.nextToken, paginationFunction: self.listMetricStreams(input:)) } diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift index da920a515e1..08fa261de2c 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift @@ -883,7 +883,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. This operation has a limit of five transactions per second, after which transactions are throttled. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. This operation has a limit of five transactions per second, after which transactions are throttled. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). public func describeLogStreams(input: DescribeLogStreamsInput) async throws -> DescribeLogStreamsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1156,7 +1156,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. You must have the logs;FilterLogEvents permission to perform this operation. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. You must have the logs;FilterLogEvents permission to perform this operation. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). public func filterLogEvents(input: FilterLogEventsInput) async throws -> FilterLogEventsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1234,7 +1234,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. public func getLogEvents(input: GetLogEventsInput) async throws -> GetLogEventsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1273,7 +1273,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see [Supported Logs and Discovered Fields](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html). The response results are sorted by the frequency percentage, starting with the highest percentage. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must specify one of these parameters, but you can't specify both. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see [Supported Logs and Discovered Fields](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html). The response results are sorted by the frequency percentage, starting with the highest percentage. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). public func getLogGroupFields(input: GetLogGroupFieldsInput) async throws -> GetLogGroupFieldsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1547,7 +1547,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Creates or updates an access policy associated with an existing destination. An access policy is an [IAM policy document](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html) that is used to authorize claims to register a subscription filter against a given destination. If multiple Amazon Web Services accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying * as the Principal or the use of the aws:PrincipalOrgId global key. + /// Creates or updates an access policy associated with an existing destination. An access policy is an [IAM policy document](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html) that is used to authorize claims to register a subscription filter against a given destination. public func putDestinationPolicy(input: PutDestinationPolicyInput) async throws -> PutDestinationPolicyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1586,7 +1586,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. The batch of events must satisfy the following constraints: + /// Uploads a batch of log events to the specified log stream. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream. The batch of events must satisfy the following constraints: /// /// * The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. /// @@ -1600,7 +1600,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { /// /// * The maximum number of log events in a batch is 10,000. /// - /// * There is a quota of five requests per second per log stream. Additional requests are throttled. This quota can't be changed. + /// * The quota of five requests per second per log stream has been removed. Instead, PutLogEvents actions are throttled based on a per-second per-account quota. You can request an increase to the per-second throttling quota by using the Service Quotas service. /// /// /// If a call to PutLogEvents returns "UnrecognizedClientException" the most likely cause is a non-valid Amazon Web Services access key ID or secret key. diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift index 275d252bcf7..458cb1cfb20 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift @@ -60,7 +60,7 @@ public protocol CloudWatchLogsClientProtocol { func describeExportTasks(input: DescribeExportTasksInput) async throws -> DescribeExportTasksOutputResponse /// Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name. CloudWatch Logs doesn’t support IAM policies that control access to the DescribeLogGroups action by using the aws:ResourceTag/key-name condition key. Other CloudWatch Logs actions do support the use of the aws:ResourceTag/key-name condition key to control access. For more information about using tags to control access, see [Controlling access to Amazon Web Services resources using tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html). If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). func describeLogGroups(input: DescribeLogGroupsInput) async throws -> DescribeLogGroupsOutputResponse - /// Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. This operation has a limit of five transactions per second, after which transactions are throttled. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. This operation has a limit of five transactions per second, after which transactions are throttled. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). func describeLogStreams(input: DescribeLogStreamsInput) async throws -> DescribeLogStreamsOutputResponse /// Lists the specified metric filters. You can list all of the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name. func describeMetricFilters(input: DescribeMetricFiltersInput) async throws -> DescribeMetricFiltersOutputResponse @@ -74,13 +74,13 @@ public protocol CloudWatchLogsClientProtocol { func describeSubscriptionFilters(input: DescribeSubscriptionFiltersInput) async throws -> DescribeSubscriptionFiltersOutputResponse /// Disassociates the associated KMS key from the specified log group. After the KMS key is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the KMS key whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. func disassociateKmsKey(input: DisassociateKmsKeyInput) async throws -> DisassociateKmsKeyOutputResponse - /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. You must have the logs;FilterLogEvents permission to perform this operation. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. You must have the logs;FilterLogEvents permission to perform this operation. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). func filterLogEvents(input: FilterLogEventsInput) async throws -> FilterLogEventsOutputResponse /// Returns information about a log group data protection policy. func getDataProtectionPolicy(input: GetDataProtectionPolicyInput) async throws -> GetDataProtectionPolicyOutputResponse - /// Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. func getLogEvents(input: GetLogEventsInput) async throws -> GetLogEventsOutputResponse - /// Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see [Supported Logs and Discovered Fields](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html). The response results are sorted by the frequency percentage, starting with the highest percentage. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + /// Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must specify one of these parameters, but you can't specify both. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see [Supported Logs and Discovered Fields](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html). The response results are sorted by the frequency percentage, starting with the highest percentage. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). func getLogGroupFields(input: GetLogGroupFieldsInput) async throws -> GetLogGroupFieldsOutputResponse /// Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs. The full unparsed log event is returned within @message. func getLogRecord(input: GetLogRecordInput) async throws -> GetLogRecordOutputResponse @@ -95,9 +95,9 @@ public protocol CloudWatchLogsClientProtocol { func putDataProtectionPolicy(input: PutDataProtectionPolicyInput) async throws -> PutDataProtectionPolicyOutputResponse /// Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions. A destination encapsulates a physical resource (such as an Amazon Kinesis stream). With a destination, you can subscribe to a real-time stream of log events for a different account, ingested using [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html). Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call [PutSubscriptionFilter](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutSubscriptionFilter.html) against this destination. To enable this, the destination owner must call [PutDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestinationPolicy.html) after PutDestination. To perform a PutDestination operation, you must also have the iam:PassRole permission. func putDestination(input: PutDestinationInput) async throws -> PutDestinationOutputResponse - /// Creates or updates an access policy associated with an existing destination. An access policy is an [IAM policy document](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html) that is used to authorize claims to register a subscription filter against a given destination. If multiple Amazon Web Services accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying * as the Principal or the use of the aws:PrincipalOrgId global key. + /// Creates or updates an access policy associated with an existing destination. An access policy is an [IAM policy document](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html) that is used to authorize claims to register a subscription filter against a given destination. func putDestinationPolicy(input: PutDestinationPolicyInput) async throws -> PutDestinationPolicyOutputResponse - /// Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. The batch of events must satisfy the following constraints: + /// Uploads a batch of log events to the specified log stream. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream. The batch of events must satisfy the following constraints: /// /// * The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. /// @@ -111,7 +111,7 @@ public protocol CloudWatchLogsClientProtocol { /// /// * The maximum number of log events in a batch is 10,000. /// - /// * There is a quota of five requests per second per log stream. Additional requests are throttled. This quota can't be changed. + /// * The quota of five requests per second per log stream has been removed. Instead, PutLogEvents actions are throttled based on a per-second per-account quota. You can request an increase to the per-second throttling quota by using the Service Quotas service. /// /// /// If a call to PutLogEvents returns "UnrecognizedClientException" the most likely cause is a non-valid Amazon Web Services access key ID or secret key. diff --git a/Sources/Services/AWSCloudWatchLogs/Paginators.swift b/Sources/Services/AWSCloudWatchLogs/Paginators.swift index 9a3fc8a7a1e..2c3ea8d2c92 100644 --- a/Sources/Services/AWSCloudWatchLogs/Paginators.swift +++ b/Sources/Services/AWSCloudWatchLogs/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDestinationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDestinationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDestinationsOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[DescribeDestinationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDestinationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDestinationsOutputResponse` public func describeDestinationsPaginated(input: DescribeDestinationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDestinationsInput.nextToken, outputKey: \DescribeDestinationsOutputResponse.nextToken, paginationFunction: self.describeDestinations(input:)) } @@ -26,24 +25,23 @@ extension DescribeDestinationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDestinationsPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.Destination]` -/// - Returns: `[CloudWatchLogsClientTypes.Destination]` extension PaginatorSequence where Input == DescribeDestinationsInput, Output == DescribeDestinationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDestinationsPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.Destination]` + /// - Returns: `[CloudWatchLogsClientTypes.Destination]` public func destinations() async throws -> [CloudWatchLogsClientTypes.Destination] { return try await self.asyncCompactMap { item in item.destinations } } } - -/// Paginate over `[DescribeLogGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLogGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLogGroupsOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[DescribeLogGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLogGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLogGroupsOutputResponse` public func describeLogGroupsPaginated(input: DescribeLogGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLogGroupsInput.nextToken, outputKey: \DescribeLogGroupsOutputResponse.nextToken, paginationFunction: self.describeLogGroups(input:)) } @@ -61,24 +59,23 @@ extension DescribeLogGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLogGroupsPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.LogGroup]` -/// - Returns: `[CloudWatchLogsClientTypes.LogGroup]` extension PaginatorSequence where Input == DescribeLogGroupsInput, Output == DescribeLogGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLogGroupsPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.LogGroup]` + /// - Returns: `[CloudWatchLogsClientTypes.LogGroup]` public func logGroups() async throws -> [CloudWatchLogsClientTypes.LogGroup] { return try await self.asyncCompactMap { item in item.logGroups } } } - -/// Paginate over `[DescribeLogStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLogStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLogStreamsOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[DescribeLogStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLogStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLogStreamsOutputResponse` public func describeLogStreamsPaginated(input: DescribeLogStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLogStreamsInput.nextToken, outputKey: \DescribeLogStreamsOutputResponse.nextToken, paginationFunction: self.describeLogStreams(input:)) } @@ -97,24 +94,23 @@ extension DescribeLogStreamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLogStreamsPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.LogStream]` -/// - Returns: `[CloudWatchLogsClientTypes.LogStream]` extension PaginatorSequence where Input == DescribeLogStreamsInput, Output == DescribeLogStreamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLogStreamsPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.LogStream]` + /// - Returns: `[CloudWatchLogsClientTypes.LogStream]` public func logStreams() async throws -> [CloudWatchLogsClientTypes.LogStream] { return try await self.asyncCompactMap { item in item.logStreams } } } - -/// Paginate over `[DescribeMetricFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMetricFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMetricFiltersOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[DescribeMetricFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMetricFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMetricFiltersOutputResponse` public func describeMetricFiltersPaginated(input: DescribeMetricFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMetricFiltersInput.nextToken, outputKey: \DescribeMetricFiltersOutputResponse.nextToken, paginationFunction: self.describeMetricFilters(input:)) } @@ -132,24 +128,23 @@ extension DescribeMetricFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMetricFiltersPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.MetricFilter]` -/// - Returns: `[CloudWatchLogsClientTypes.MetricFilter]` extension PaginatorSequence where Input == DescribeMetricFiltersInput, Output == DescribeMetricFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMetricFiltersPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.MetricFilter]` + /// - Returns: `[CloudWatchLogsClientTypes.MetricFilter]` public func metricFilters() async throws -> [CloudWatchLogsClientTypes.MetricFilter] { return try await self.asyncCompactMap { item in item.metricFilters } } } - -/// Paginate over `[DescribeSubscriptionFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSubscriptionFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSubscriptionFiltersOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[DescribeSubscriptionFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSubscriptionFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSubscriptionFiltersOutputResponse` public func describeSubscriptionFiltersPaginated(input: DescribeSubscriptionFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSubscriptionFiltersInput.nextToken, outputKey: \DescribeSubscriptionFiltersOutputResponse.nextToken, paginationFunction: self.describeSubscriptionFilters(input:)) } @@ -165,24 +160,23 @@ extension DescribeSubscriptionFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSubscriptionFiltersPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.SubscriptionFilter]` -/// - Returns: `[CloudWatchLogsClientTypes.SubscriptionFilter]` extension PaginatorSequence where Input == DescribeSubscriptionFiltersInput, Output == DescribeSubscriptionFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSubscriptionFiltersPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.SubscriptionFilter]` + /// - Returns: `[CloudWatchLogsClientTypes.SubscriptionFilter]` public func subscriptionFilters() async throws -> [CloudWatchLogsClientTypes.SubscriptionFilter] { return try await self.asyncCompactMap { item in item.subscriptionFilters } } } - -/// Paginate over `[FilterLogEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[FilterLogEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `FilterLogEventsOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[FilterLogEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[FilterLogEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `FilterLogEventsOutputResponse` public func filterLogEventsPaginated(input: FilterLogEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \FilterLogEventsInput.nextToken, outputKey: \FilterLogEventsOutputResponse.nextToken, paginationFunction: self.filterLogEvents(input:)) } @@ -204,16 +198,15 @@ extension FilterLogEventsInput: ClientRuntime.PaginateToken { unmask: self.unmask )} } - -/// Paginate over `[GetLogEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLogEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLogEventsOutputResponse` extension CloudWatchLogsClient { + /// Paginate over `[GetLogEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLogEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLogEventsOutputResponse` public func getLogEventsPaginated(input: GetLogEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLogEventsInput.nextToken, outputKey: \GetLogEventsOutputResponse.nextForwardToken, paginationFunction: self.getLogEvents(input:)) } @@ -234,10 +227,10 @@ extension GetLogEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getLogEventsPaginated` -/// to access the nested member `[CloudWatchLogsClientTypes.OutputLogEvent]` -/// - Returns: `[CloudWatchLogsClientTypes.OutputLogEvent]` extension PaginatorSequence where Input == GetLogEventsInput, Output == GetLogEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getLogEventsPaginated` + /// to access the nested member `[CloudWatchLogsClientTypes.OutputLogEvent]` + /// - Returns: `[CloudWatchLogsClientTypes.OutputLogEvent]` public func events() async throws -> [CloudWatchLogsClientTypes.OutputLogEvent] { return try await self.asyncCompactMap { item in item.events } } diff --git a/Sources/Services/AWSCloudWatchLogs/models/Models.swift b/Sources/Services/AWSCloudWatchLogs/models/Models.swift index 8352dc9c1d0..d82042f6b38 100644 --- a/Sources/Services/AWSCloudWatchLogs/models/Models.swift +++ b/Sources/Services/AWSCloudWatchLogs/models/Models.swift @@ -625,7 +625,7 @@ extension DataAlreadyAcceptedException { } } -/// The event was already logged. +/// The event was already logged. PutLogEvents actions are now always accepted and never return DataAlreadyAcceptedException regardless of whether a given batch of log events has already been accepted. public struct DataAlreadyAcceptedException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -2120,7 +2120,6 @@ public struct DescribeLogStreamsInput: Swift.Equatable { /// Specify either the name or ARN of the log group to view. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. public var logGroupIdentifier: Swift.String? /// The name of the log group. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. - /// This member is required. public var logGroupName: Swift.String? /// The prefix to match. If orderBy is LastEventTime, you cannot specify this parameter. public var logStreamNamePrefix: Swift.String? @@ -3633,7 +3632,6 @@ public struct FilterLogEventsInput: Swift.Equatable { /// Specify either the name or ARN of the log group to view log events from. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. public var logGroupIdentifier: Swift.String? /// The name of the log group to search. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. - /// This member is required. public var logGroupName: Swift.String? /// Filters the results to include only events from log streams that have names starting with this prefix. If you specify a value for both logStreamNamePrefix and logStreamNames, but the value for logStreamNamePrefix does not match any log stream names specified in logStreamNames, the action returns an InvalidParameterException error. public var logStreamNamePrefix: Swift.String? @@ -4115,7 +4113,6 @@ public struct GetLogEventsInput: Swift.Equatable { /// Specify either the name or ARN of the log group to view events from. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. public var logGroupIdentifier: Swift.String? /// The name of the log group. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. - /// This member is required. public var logGroupName: Swift.String? /// The name of the log stream. /// This member is required. @@ -4328,7 +4325,6 @@ public struct GetLogGroupFieldsInput: Swift.Equatable { /// Specify either the name or ARN of the log group to view. If the log group is in a source account and you are using a monitoring account, you must specify the ARN. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. public var logGroupIdentifier: Swift.String? /// The name of the log group to search. If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error. - /// This member is required. public var logGroupName: Swift.String? /// The time to set as the center of the query. If you specify time, the 15 minutes before this time are queries. If you omit time, the 8 minutes before and 8 minutes after this time are searched. The time value is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC. public var time: Swift.Int? @@ -4908,7 +4904,7 @@ extension InvalidSequenceTokenException { } } -/// The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message. +/// The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message. PutLogEvents actions are now always accepted and never return InvalidSequenceTokenException regardless of receiving an invalid sequence token. public struct InvalidSequenceTokenException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -5472,14 +5468,14 @@ extension CloudWatchLogsClientTypes { public var firstEventTimestamp: Swift.Int? /// The time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. The lastEventTime value updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer. public var lastEventTimestamp: Swift.Int? - /// The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + /// The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC The lastIngestionTime value updates on an eventual consistency basis. It typically updates in less than an hour after ingestion, but in rare situations might take longer. public var lastIngestionTime: Swift.Int? /// The name of the log stream. public var logStreamName: Swift.String? /// The number of bytes stored. Important: As of June 17, 2019, this parameter is no longer supported for log streams, and is always reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected. @available(*, deprecated, message: "Starting on June 17, 2019, this parameter will be deprecated for log streams, and will be reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected.") public var storedBytes: Swift.Int? - /// The sequence token. + /// The sequence token. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted regardless of receiving an invalid sequence token. You don't need to obtain uploadSequenceToken to use a PutLogEvents action. public var uploadSequenceToken: Swift.String? public init ( @@ -6438,7 +6434,7 @@ public struct PutLogEventsInput: Swift.Equatable { /// The name of the log stream. /// This member is required. public var logStreamName: Swift.String? - /// The sequence token obtained from the response of the previous PutLogEvents call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using [DescribeLogStreams](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogStreams.html). If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. + /// The sequence token obtained from the response of the previous PutLogEvents call. The sequenceToken parameter is now ignored in PutLogEvents actions. PutLogEvents actions are now accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. public var sequenceToken: Swift.String? public init ( @@ -6540,7 +6536,7 @@ extension PutLogEventsOutputResponse: ClientRuntime.HttpResponseBinding { } public struct PutLogEventsOutputResponse: Swift.Equatable { - /// The next sequence token. + /// The next sequence token. This field has been deprecated. The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream and you do not need to wait for the response of a previous PutLogEvents action to obtain the nextSequenceToken value. public var nextSequenceToken: Swift.String? /// The rejected events. public var rejectedLogEventsInfo: CloudWatchLogsClientTypes.RejectedLogEventsInfo? diff --git a/Sources/Services/AWSCodeBuild/Paginators.swift b/Sources/Services/AWSCodeBuild/Paginators.swift index 812ae4d64b9..040cd364f29 100644 --- a/Sources/Services/AWSCodeBuild/Paginators.swift +++ b/Sources/Services/AWSCodeBuild/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCodeCoveragesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCodeCoveragesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCodeCoveragesOutputResponse` extension CodeBuildClient { + /// Paginate over `[DescribeCodeCoveragesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCodeCoveragesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCodeCoveragesOutputResponse` public func describeCodeCoveragesPaginated(input: DescribeCodeCoveragesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCodeCoveragesInput.nextToken, outputKey: \DescribeCodeCoveragesOutputResponse.nextToken, paginationFunction: self.describeCodeCoverages(input:)) } @@ -30,24 +29,23 @@ extension DescribeCodeCoveragesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCodeCoveragesPaginated` -/// to access the nested member `[CodeBuildClientTypes.CodeCoverage]` -/// - Returns: `[CodeBuildClientTypes.CodeCoverage]` extension PaginatorSequence where Input == DescribeCodeCoveragesInput, Output == DescribeCodeCoveragesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCodeCoveragesPaginated` + /// to access the nested member `[CodeBuildClientTypes.CodeCoverage]` + /// - Returns: `[CodeBuildClientTypes.CodeCoverage]` public func codeCoverages() async throws -> [CodeBuildClientTypes.CodeCoverage] { return try await self.asyncCompactMap { item in item.codeCoverages } } } - -/// Paginate over `[DescribeTestCasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTestCasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTestCasesOutputResponse` extension CodeBuildClient { + /// Paginate over `[DescribeTestCasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTestCasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTestCasesOutputResponse` public func describeTestCasesPaginated(input: DescribeTestCasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTestCasesInput.nextToken, outputKey: \DescribeTestCasesOutputResponse.nextToken, paginationFunction: self.describeTestCases(input:)) } @@ -63,24 +61,23 @@ extension DescribeTestCasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTestCasesPaginated` -/// to access the nested member `[CodeBuildClientTypes.TestCase]` -/// - Returns: `[CodeBuildClientTypes.TestCase]` extension PaginatorSequence where Input == DescribeTestCasesInput, Output == DescribeTestCasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTestCasesPaginated` + /// to access the nested member `[CodeBuildClientTypes.TestCase]` + /// - Returns: `[CodeBuildClientTypes.TestCase]` public func testCases() async throws -> [CodeBuildClientTypes.TestCase] { return try await self.asyncCompactMap { item in item.testCases } } } - -/// Paginate over `[ListBuildBatchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuildBatchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuildBatchesOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListBuildBatchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuildBatchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuildBatchesOutputResponse` public func listBuildBatchesPaginated(input: ListBuildBatchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuildBatchesInput.nextToken, outputKey: \ListBuildBatchesOutputResponse.nextToken, paginationFunction: self.listBuildBatches(input:)) } @@ -96,24 +93,23 @@ extension ListBuildBatchesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBuildBatchesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListBuildBatchesInput, Output == ListBuildBatchesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBuildBatchesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ids() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ids } } } - -/// Paginate over `[ListBuildBatchesForProjectOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuildBatchesForProjectInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuildBatchesForProjectOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListBuildBatchesForProjectOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuildBatchesForProjectInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuildBatchesForProjectOutputResponse` public func listBuildBatchesForProjectPaginated(input: ListBuildBatchesForProjectInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuildBatchesForProjectInput.nextToken, outputKey: \ListBuildBatchesForProjectOutputResponse.nextToken, paginationFunction: self.listBuildBatchesForProject(input:)) } @@ -130,24 +126,23 @@ extension ListBuildBatchesForProjectInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBuildBatchesForProjectPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListBuildBatchesForProjectInput, Output == ListBuildBatchesForProjectOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBuildBatchesForProjectPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ids() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ids } } } - -/// Paginate over `[ListBuildsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuildsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuildsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListBuildsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuildsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuildsOutputResponse` public func listBuildsPaginated(input: ListBuildsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuildsInput.nextToken, outputKey: \ListBuildsOutputResponse.nextToken, paginationFunction: self.listBuilds(input:)) } @@ -161,24 +156,23 @@ extension ListBuildsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBuildsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListBuildsInput, Output == ListBuildsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBuildsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ids() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ids } } } - -/// Paginate over `[ListBuildsForProjectOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuildsForProjectInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuildsForProjectOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListBuildsForProjectOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuildsForProjectInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuildsForProjectOutputResponse` public func listBuildsForProjectPaginated(input: ListBuildsForProjectInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuildsForProjectInput.nextToken, outputKey: \ListBuildsForProjectOutputResponse.nextToken, paginationFunction: self.listBuildsForProject(input:)) } @@ -193,24 +187,23 @@ extension ListBuildsForProjectInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBuildsForProjectPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListBuildsForProjectInput, Output == ListBuildsForProjectOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBuildsForProjectPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ids() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ids } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -225,24 +218,23 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func projects() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.projects } } } - -/// Paginate over `[ListReportGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportGroupsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListReportGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportGroupsOutputResponse` public func listReportGroupsPaginated(input: ListReportGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportGroupsInput.nextToken, outputKey: \ListReportGroupsOutputResponse.nextToken, paginationFunction: self.listReportGroups(input:)) } @@ -258,24 +250,23 @@ extension ListReportGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReportGroupsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListReportGroupsInput, Output == ListReportGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReportGroupsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func reportGroups() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.reportGroups } } } - -/// Paginate over `[ListReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportsOutputResponse` public func listReportsPaginated(input: ListReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportsInput.nextToken, outputKey: \ListReportsOutputResponse.nextToken, paginationFunction: self.listReports(input:)) } @@ -291,24 +282,23 @@ extension ListReportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReportsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListReportsInput, Output == ListReportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReportsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func reports() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.reports } } } - -/// Paginate over `[ListReportsForReportGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReportsForReportGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReportsForReportGroupOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListReportsForReportGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReportsForReportGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReportsForReportGroupOutputResponse` public func listReportsForReportGroupPaginated(input: ListReportsForReportGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReportsForReportGroupInput.nextToken, outputKey: \ListReportsForReportGroupOutputResponse.nextToken, paginationFunction: self.listReportsForReportGroup(input:)) } @@ -325,24 +315,23 @@ extension ListReportsForReportGroupInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReportsForReportGroupPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListReportsForReportGroupInput, Output == ListReportsForReportGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReportsForReportGroupPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func reports() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.reports } } } - -/// Paginate over `[ListSharedProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSharedProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSharedProjectsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListSharedProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSharedProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSharedProjectsOutputResponse` public func listSharedProjectsPaginated(input: ListSharedProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSharedProjectsInput.nextToken, outputKey: \ListSharedProjectsOutputResponse.nextToken, paginationFunction: self.listSharedProjects(input:)) } @@ -358,24 +347,23 @@ extension ListSharedProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSharedProjectsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListSharedProjectsInput, Output == ListSharedProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSharedProjectsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func projects() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.projects } } } - -/// Paginate over `[ListSharedReportGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSharedReportGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSharedReportGroupsOutputResponse` extension CodeBuildClient { + /// Paginate over `[ListSharedReportGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSharedReportGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSharedReportGroupsOutputResponse` public func listSharedReportGroupsPaginated(input: ListSharedReportGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSharedReportGroupsInput.nextToken, outputKey: \ListSharedReportGroupsOutputResponse.nextToken, paginationFunction: self.listSharedReportGroups(input:)) } @@ -391,10 +379,10 @@ extension ListSharedReportGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSharedReportGroupsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListSharedReportGroupsInput, Output == ListSharedReportGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSharedReportGroupsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func reportGroups() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.reportGroups } } diff --git a/Sources/Services/AWSCodeCommit/Paginators.swift b/Sources/Services/AWSCodeCommit/Paginators.swift index 945600c69e2..1f4ee714371 100644 --- a/Sources/Services/AWSCodeCommit/Paginators.swift +++ b/Sources/Services/AWSCodeCommit/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeMergeConflictsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMergeConflictsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMergeConflictsOutputResponse` extension CodeCommitClient { + /// Paginate over `[DescribeMergeConflictsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMergeConflictsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMergeConflictsOutputResponse` public func describeMergeConflictsPaginated(input: DescribeMergeConflictsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMergeConflictsInput.nextToken, outputKey: \DescribeMergeConflictsOutputResponse.nextToken, paginationFunction: self.describeMergeConflicts(input:)) } @@ -31,16 +30,15 @@ extension DescribeMergeConflictsInput: ClientRuntime.PaginateToken { sourceCommitSpecifier: self.sourceCommitSpecifier )} } - -/// Paginate over `[DescribePullRequestEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePullRequestEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePullRequestEventsOutputResponse` extension CodeCommitClient { + /// Paginate over `[DescribePullRequestEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePullRequestEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePullRequestEventsOutputResponse` public func describePullRequestEventsPaginated(input: DescribePullRequestEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePullRequestEventsInput.nextToken, outputKey: \DescribePullRequestEventsOutputResponse.nextToken, paginationFunction: self.describePullRequestEvents(input:)) } @@ -56,16 +54,15 @@ extension DescribePullRequestEventsInput: ClientRuntime.PaginateToken { pullRequestId: self.pullRequestId )} } - -/// Paginate over `[GetCommentReactionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCommentReactionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCommentReactionsOutputResponse` extension CodeCommitClient { + /// Paginate over `[GetCommentReactionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCommentReactionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCommentReactionsOutputResponse` public func getCommentReactionsPaginated(input: GetCommentReactionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCommentReactionsInput.nextToken, outputKey: \GetCommentReactionsOutputResponse.nextToken, paginationFunction: self.getCommentReactions(input:)) } @@ -80,16 +77,15 @@ extension GetCommentReactionsInput: ClientRuntime.PaginateToken { reactionUserArn: self.reactionUserArn )} } - -/// Paginate over `[GetCommentsForComparedCommitOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCommentsForComparedCommitInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCommentsForComparedCommitOutputResponse` extension CodeCommitClient { + /// Paginate over `[GetCommentsForComparedCommitOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCommentsForComparedCommitInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCommentsForComparedCommitOutputResponse` public func getCommentsForComparedCommitPaginated(input: GetCommentsForComparedCommitInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCommentsForComparedCommitInput.nextToken, outputKey: \GetCommentsForComparedCommitOutputResponse.nextToken, paginationFunction: self.getCommentsForComparedCommit(input:)) } @@ -105,16 +101,15 @@ extension GetCommentsForComparedCommitInput: ClientRuntime.PaginateToken { repositoryName: self.repositoryName )} } - -/// Paginate over `[GetCommentsForPullRequestOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCommentsForPullRequestInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCommentsForPullRequestOutputResponse` extension CodeCommitClient { + /// Paginate over `[GetCommentsForPullRequestOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCommentsForPullRequestInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCommentsForPullRequestOutputResponse` public func getCommentsForPullRequestPaginated(input: GetCommentsForPullRequestInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCommentsForPullRequestInput.nextToken, outputKey: \GetCommentsForPullRequestOutputResponse.nextToken, paginationFunction: self.getCommentsForPullRequest(input:)) } @@ -131,16 +126,15 @@ extension GetCommentsForPullRequestInput: ClientRuntime.PaginateToken { repositoryName: self.repositoryName )} } - -/// Paginate over `[GetDifferencesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDifferencesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDifferencesOutputResponse` extension CodeCommitClient { + /// Paginate over `[GetDifferencesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDifferencesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDifferencesOutputResponse` public func getDifferencesPaginated(input: GetDifferencesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDifferencesInput.nextToken, outputKey: \GetDifferencesOutputResponse.nextToken, paginationFunction: self.getDifferences(input:)) } @@ -158,16 +152,15 @@ extension GetDifferencesInput: ClientRuntime.PaginateToken { repositoryName: self.repositoryName )} } - -/// Paginate over `[GetMergeConflictsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMergeConflictsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMergeConflictsOutputResponse` extension CodeCommitClient { + /// Paginate over `[GetMergeConflictsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMergeConflictsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMergeConflictsOutputResponse` public func getMergeConflictsPaginated(input: GetMergeConflictsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMergeConflictsInput.nextToken, outputKey: \GetMergeConflictsOutputResponse.nextToken, paginationFunction: self.getMergeConflicts(input:)) } @@ -186,16 +179,15 @@ extension GetMergeConflictsInput: ClientRuntime.PaginateToken { sourceCommitSpecifier: self.sourceCommitSpecifier )} } - -/// Paginate over `[ListApprovalRuleTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApprovalRuleTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApprovalRuleTemplatesOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListApprovalRuleTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApprovalRuleTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApprovalRuleTemplatesOutputResponse` public func listApprovalRuleTemplatesPaginated(input: ListApprovalRuleTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApprovalRuleTemplatesInput.nextToken, outputKey: \ListApprovalRuleTemplatesOutputResponse.nextToken, paginationFunction: self.listApprovalRuleTemplates(input:)) } @@ -208,16 +200,15 @@ extension ListApprovalRuleTemplatesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssociatedApprovalRuleTemplatesForRepositoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedApprovalRuleTemplatesForRepositoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedApprovalRuleTemplatesForRepositoryOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListAssociatedApprovalRuleTemplatesForRepositoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedApprovalRuleTemplatesForRepositoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedApprovalRuleTemplatesForRepositoryOutputResponse` public func listAssociatedApprovalRuleTemplatesForRepositoryPaginated(input: ListAssociatedApprovalRuleTemplatesForRepositoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedApprovalRuleTemplatesForRepositoryInput.nextToken, outputKey: \ListAssociatedApprovalRuleTemplatesForRepositoryOutputResponse.nextToken, paginationFunction: self.listAssociatedApprovalRuleTemplatesForRepository(input:)) } @@ -231,16 +222,15 @@ extension ListAssociatedApprovalRuleTemplatesForRepositoryInput: ClientRuntime.P repositoryName: self.repositoryName )} } - -/// Paginate over `[ListBranchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBranchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBranchesOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListBranchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBranchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBranchesOutputResponse` public func listBranchesPaginated(input: ListBranchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBranchesInput.nextToken, outputKey: \ListBranchesOutputResponse.nextToken, paginationFunction: self.listBranches(input:)) } @@ -254,24 +244,23 @@ extension ListBranchesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBranchesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListBranchesInput, Output == ListBranchesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBranchesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func branches() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.branches } } } - -/// Paginate over `[ListPullRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPullRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPullRequestsOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListPullRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPullRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPullRequestsOutputResponse` public func listPullRequestsPaginated(input: ListPullRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPullRequestsInput.nextToken, outputKey: \ListPullRequestsOutputResponse.nextToken, paginationFunction: self.listPullRequests(input:)) } @@ -287,16 +276,15 @@ extension ListPullRequestsInput: ClientRuntime.PaginateToken { repositoryName: self.repositoryName )} } - -/// Paginate over `[ListRepositoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListRepositoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesOutputResponse` public func listRepositoriesPaginated(input: ListRepositoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositoriesInput.nextToken, outputKey: \ListRepositoriesOutputResponse.nextToken, paginationFunction: self.listRepositories(input:)) } @@ -311,24 +299,23 @@ extension ListRepositoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRepositoriesPaginated` -/// to access the nested member `[CodeCommitClientTypes.RepositoryNameIdPair]` -/// - Returns: `[CodeCommitClientTypes.RepositoryNameIdPair]` extension PaginatorSequence where Input == ListRepositoriesInput, Output == ListRepositoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRepositoriesPaginated` + /// to access the nested member `[CodeCommitClientTypes.RepositoryNameIdPair]` + /// - Returns: `[CodeCommitClientTypes.RepositoryNameIdPair]` public func repositories() async throws -> [CodeCommitClientTypes.RepositoryNameIdPair] { return try await self.asyncCompactMap { item in item.repositories } } } - -/// Paginate over `[ListRepositoriesForApprovalRuleTemplateOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositoriesForApprovalRuleTemplateInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesForApprovalRuleTemplateOutputResponse` extension CodeCommitClient { + /// Paginate over `[ListRepositoriesForApprovalRuleTemplateOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositoriesForApprovalRuleTemplateInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesForApprovalRuleTemplateOutputResponse` public func listRepositoriesForApprovalRuleTemplatePaginated(input: ListRepositoriesForApprovalRuleTemplateInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositoriesForApprovalRuleTemplateInput.nextToken, outputKey: \ListRepositoriesForApprovalRuleTemplateOutputResponse.nextToken, paginationFunction: self.listRepositoriesForApprovalRuleTemplate(input:)) } diff --git a/Sources/Services/AWSCodeDeploy/Paginators.swift b/Sources/Services/AWSCodeDeploy/Paginators.swift index bb0b7d2dc4b..af61e91fe2b 100644 --- a/Sources/Services/AWSCodeDeploy/Paginators.swift +++ b/Sources/Services/AWSCodeDeploy/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationRevisionsOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListApplicationRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationRevisionsOutputResponse` public func listApplicationRevisionsPaginated(input: ListApplicationRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationRevisionsInput.nextToken, outputKey: \ListApplicationRevisionsOutputResponse.nextToken, paginationFunction: self.listApplicationRevisions(input:)) } @@ -30,24 +29,23 @@ extension ListApplicationRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationRevisionsPaginated` -/// to access the nested member `[CodeDeployClientTypes.RevisionLocation]` -/// - Returns: `[CodeDeployClientTypes.RevisionLocation]` extension PaginatorSequence where Input == ListApplicationRevisionsInput, Output == ListApplicationRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationRevisionsPaginated` + /// to access the nested member `[CodeDeployClientTypes.RevisionLocation]` + /// - Returns: `[CodeDeployClientTypes.RevisionLocation]` public func revisions() async throws -> [CodeDeployClientTypes.RevisionLocation] { return try await self.asyncCompactMap { item in item.revisions } } } - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -60,24 +58,23 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListApplicationsInput, Output == ListApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func applications() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.applications } } } - -/// Paginate over `[ListDeploymentConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentConfigsOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListDeploymentConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentConfigsOutputResponse` public func listDeploymentConfigsPaginated(input: ListDeploymentConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentConfigsInput.nextToken, outputKey: \ListDeploymentConfigsOutputResponse.nextToken, paginationFunction: self.listDeploymentConfigs(input:)) } @@ -90,24 +87,23 @@ extension ListDeploymentConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeploymentConfigsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDeploymentConfigsInput, Output == ListDeploymentConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeploymentConfigsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func deploymentConfigsList() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.deploymentConfigsList } } } - -/// Paginate over `[ListDeploymentGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentGroupsOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListDeploymentGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentGroupsOutputResponse` public func listDeploymentGroupsPaginated(input: ListDeploymentGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentGroupsInput.nextToken, outputKey: \ListDeploymentGroupsOutputResponse.nextToken, paginationFunction: self.listDeploymentGroups(input:)) } @@ -121,24 +117,23 @@ extension ListDeploymentGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeploymentGroupsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDeploymentGroupsInput, Output == ListDeploymentGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeploymentGroupsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func deploymentGroups() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.deploymentGroups } } } - -/// Paginate over `[ListDeploymentInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentInstancesOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListDeploymentInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentInstancesOutputResponse` public func listDeploymentInstancesPaginated(input: ListDeploymentInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentInstancesInput.nextToken, outputKey: \ListDeploymentInstancesOutputResponse.nextToken, paginationFunction: self.listDeploymentInstances(input:)) } @@ -154,24 +149,23 @@ extension ListDeploymentInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeploymentInstancesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDeploymentInstancesInput, Output == ListDeploymentInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeploymentInstancesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func instancesList() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.instancesList } } } - -/// Paginate over `[ListDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` extension CodeDeployClient { + /// Paginate over `[ListDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` public func listDeploymentsPaginated(input: ListDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentsInput.nextToken, outputKey: \ListDeploymentsOutputResponse.nextToken, paginationFunction: self.listDeployments(input:)) } @@ -189,10 +183,10 @@ extension ListDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeploymentsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDeploymentsInput, Output == ListDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeploymentsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func deployments() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.deployments } } diff --git a/Sources/Services/AWSCodeGuruProfiler/Paginators.swift b/Sources/Services/AWSCodeGuruProfiler/Paginators.swift index 75385bd6e87..ef633e1877a 100644 --- a/Sources/Services/AWSCodeGuruProfiler/Paginators.swift +++ b/Sources/Services/AWSCodeGuruProfiler/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetFindingsReportAccountSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFindingsReportAccountSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFindingsReportAccountSummaryOutputResponse` extension CodeGuruProfilerClient { + /// Paginate over `[GetFindingsReportAccountSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFindingsReportAccountSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFindingsReportAccountSummaryOutputResponse` public func getFindingsReportAccountSummaryPaginated(input: GetFindingsReportAccountSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFindingsReportAccountSummaryInput.nextToken, outputKey: \GetFindingsReportAccountSummaryOutputResponse.nextToken, paginationFunction: self.getFindingsReportAccountSummary(input:)) } diff --git a/Sources/Services/AWSCodeGuruReviewer/Paginators.swift b/Sources/Services/AWSCodeGuruReviewer/Paginators.swift index 34bf5143415..81672fb8f6a 100644 --- a/Sources/Services/AWSCodeGuruReviewer/Paginators.swift +++ b/Sources/Services/AWSCodeGuruReviewer/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCodeReviewsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCodeReviewsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCodeReviewsOutputResponse` extension CodeGuruReviewerClient { + /// Paginate over `[ListCodeReviewsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCodeReviewsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCodeReviewsOutputResponse` public func listCodeReviewsPaginated(input: ListCodeReviewsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCodeReviewsInput.nextToken, outputKey: \ListCodeReviewsOutputResponse.nextToken, paginationFunction: self.listCodeReviews(input:)) } @@ -28,16 +27,15 @@ extension ListCodeReviewsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListRecommendationFeedbackOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendationFeedbackInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationFeedbackOutputResponse` extension CodeGuruReviewerClient { + /// Paginate over `[ListRecommendationFeedbackOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendationFeedbackInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationFeedbackOutputResponse` public func listRecommendationFeedbackPaginated(input: ListRecommendationFeedbackInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendationFeedbackInput.nextToken, outputKey: \ListRecommendationFeedbackOutputResponse.nextToken, paginationFunction: self.listRecommendationFeedback(input:)) } @@ -53,16 +51,15 @@ extension ListRecommendationFeedbackInput: ClientRuntime.PaginateToken { userIds: self.userIds )} } - -/// Paginate over `[ListRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` extension CodeGuruReviewerClient { + /// Paginate over `[ListRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` public func listRecommendationsPaginated(input: ListRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendationsInput.nextToken, outputKey: \ListRecommendationsOutputResponse.nextToken, paginationFunction: self.listRecommendations(input:)) } @@ -76,16 +73,15 @@ extension ListRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRepositoryAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositoryAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositoryAssociationsOutputResponse` extension CodeGuruReviewerClient { + /// Paginate over `[ListRepositoryAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositoryAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoryAssociationsOutputResponse` public func listRepositoryAssociationsPaginated(input: ListRepositoryAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositoryAssociationsInput.nextToken, outputKey: \ListRepositoryAssociationsOutputResponse.nextToken, paginationFunction: self.listRepositoryAssociations(input:)) } @@ -103,10 +99,10 @@ extension ListRepositoryAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRepositoryAssociationsPaginated` -/// to access the nested member `[CodeGuruReviewerClientTypes.RepositoryAssociationSummary]` -/// - Returns: `[CodeGuruReviewerClientTypes.RepositoryAssociationSummary]` extension PaginatorSequence where Input == ListRepositoryAssociationsInput, Output == ListRepositoryAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRepositoryAssociationsPaginated` + /// to access the nested member `[CodeGuruReviewerClientTypes.RepositoryAssociationSummary]` + /// - Returns: `[CodeGuruReviewerClientTypes.RepositoryAssociationSummary]` public func repositoryAssociationSummaries() async throws -> [CodeGuruReviewerClientTypes.RepositoryAssociationSummary] { return try await self.asyncCompactMap { item in item.repositoryAssociationSummaries } } diff --git a/Sources/Services/AWSCodePipeline/Paginators.swift b/Sources/Services/AWSCodePipeline/Paginators.swift index 6813e57c3f4..62dd1dc2bd5 100644 --- a/Sources/Services/AWSCodePipeline/Paginators.swift +++ b/Sources/Services/AWSCodePipeline/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListActionExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActionExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActionExecutionsOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListActionExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActionExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActionExecutionsOutputResponse` public func listActionExecutionsPaginated(input: ListActionExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActionExecutionsInput.nextToken, outputKey: \ListActionExecutionsOutputResponse.nextToken, paginationFunction: self.listActionExecutions(input:)) } @@ -26,16 +25,15 @@ extension ListActionExecutionsInput: ClientRuntime.PaginateToken { pipelineName: self.pipelineName )} } - -/// Paginate over `[ListActionTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActionTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActionTypesOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListActionTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActionTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActionTypesOutputResponse` public func listActionTypesPaginated(input: ListActionTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActionTypesInput.nextToken, outputKey: \ListActionTypesOutputResponse.nextToken, paginationFunction: self.listActionTypes(input:)) } @@ -49,16 +47,15 @@ extension ListActionTypesInput: ClientRuntime.PaginateToken { regionFilter: self.regionFilter )} } - -/// Paginate over `[ListPipelineExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelineExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionsOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListPipelineExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelineExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionsOutputResponse` public func listPipelineExecutionsPaginated(input: ListPipelineExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelineExecutionsInput.nextToken, outputKey: \ListPipelineExecutionsOutputResponse.nextToken, paginationFunction: self.listPipelineExecutions(input:)) } @@ -72,16 +69,15 @@ extension ListPipelineExecutionsInput: ClientRuntime.PaginateToken { pipelineName: self.pipelineName )} } - -/// Paginate over `[ListPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` public func listPipelinesPaginated(input: ListPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelinesInput.nextToken, outputKey: \ListPipelinesOutputResponse.nextToken, paginationFunction: self.listPipelines(input:)) } @@ -94,16 +90,15 @@ extension ListPipelinesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -117,16 +112,15 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { resourceArn: self.resourceArn )} } - -/// Paginate over `[ListWebhooksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWebhooksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWebhooksOutputResponse` extension CodePipelineClient { + /// Paginate over `[ListWebhooksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWebhooksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWebhooksOutputResponse` public func listWebhooksPaginated(input: ListWebhooksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWebhooksInput.nextToken, outputKey: \ListWebhooksOutputResponse.nextToken, paginationFunction: self.listWebhooks(input:)) } diff --git a/Sources/Services/AWSCodeStarconnections/Paginators.swift b/Sources/Services/AWSCodeStarconnections/Paginators.swift index 8fff4f4f0df..6a378374a0d 100644 --- a/Sources/Services/AWSCodeStarconnections/Paginators.swift +++ b/Sources/Services/AWSCodeStarconnections/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectionsOutputResponse` extension CodeStarconnectionsClient { + /// Paginate over `[ListConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectionsOutputResponse` public func listConnectionsPaginated(input: ListConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectionsInput.nextToken, outputKey: \ListConnectionsOutputResponse.nextToken, paginationFunction: self.listConnections(input:)) } @@ -26,16 +25,15 @@ extension ListConnectionsInput: ClientRuntime.PaginateToken { providerTypeFilter: self.providerTypeFilter )} } - -/// Paginate over `[ListHostsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHostsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHostsOutputResponse` extension CodeStarconnectionsClient { + /// Paginate over `[ListHostsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHostsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHostsOutputResponse` public func listHostsPaginated(input: ListHostsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHostsInput.nextToken, outputKey: \ListHostsOutputResponse.nextToken, paginationFunction: self.listHosts(input:)) } diff --git a/Sources/Services/AWSCodeartifact/Paginators.swift b/Sources/Services/AWSCodeartifact/Paginators.swift index cc610801fbb..3c99e5bbb3d 100644 --- a/Sources/Services/AWSCodeartifact/Paginators.swift +++ b/Sources/Services/AWSCodeartifact/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` public func listDomainsPaginated(input: ListDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsInput.nextToken, outputKey: \ListDomainsOutputResponse.nextToken, paginationFunction: self.listDomains(input:)) } @@ -25,24 +24,23 @@ extension ListDomainsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` -/// to access the nested member `[CodeartifactClientTypes.DomainSummary]` -/// - Returns: `[CodeartifactClientTypes.DomainSummary]` extension PaginatorSequence where Input == ListDomainsInput, Output == ListDomainsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` + /// to access the nested member `[CodeartifactClientTypes.DomainSummary]` + /// - Returns: `[CodeartifactClientTypes.DomainSummary]` public func domains() async throws -> [CodeartifactClientTypes.DomainSummary] { return try await self.asyncCompactMap { item in item.domains } } } - -/// Paginate over `[ListPackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagesOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListPackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagesOutputResponse` public func listPackagesPaginated(input: ListPackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagesInput.nextToken, outputKey: \ListPackagesOutputResponse.nextToken, paginationFunction: self.listPackages(input:)) } @@ -64,24 +62,23 @@ extension ListPackagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPackagesPaginated` -/// to access the nested member `[CodeartifactClientTypes.PackageSummary]` -/// - Returns: `[CodeartifactClientTypes.PackageSummary]` extension PaginatorSequence where Input == ListPackagesInput, Output == ListPackagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPackagesPaginated` + /// to access the nested member `[CodeartifactClientTypes.PackageSummary]` + /// - Returns: `[CodeartifactClientTypes.PackageSummary]` public func packages() async throws -> [CodeartifactClientTypes.PackageSummary] { return try await self.asyncCompactMap { item in item.packages } } } - -/// Paginate over `[ListPackageVersionAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackageVersionAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackageVersionAssetsOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListPackageVersionAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackageVersionAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackageVersionAssetsOutputResponse` public func listPackageVersionAssetsPaginated(input: ListPackageVersionAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackageVersionAssetsInput.nextToken, outputKey: \ListPackageVersionAssetsOutputResponse.nextToken, paginationFunction: self.listPackageVersionAssets(input:)) } @@ -102,24 +99,23 @@ extension ListPackageVersionAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPackageVersionAssetsPaginated` -/// to access the nested member `[CodeartifactClientTypes.AssetSummary]` -/// - Returns: `[CodeartifactClientTypes.AssetSummary]` extension PaginatorSequence where Input == ListPackageVersionAssetsInput, Output == ListPackageVersionAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPackageVersionAssetsPaginated` + /// to access the nested member `[CodeartifactClientTypes.AssetSummary]` + /// - Returns: `[CodeartifactClientTypes.AssetSummary]` public func assets() async throws -> [CodeartifactClientTypes.AssetSummary] { return try await self.asyncCompactMap { item in item.assets } } } - -/// Paginate over `[ListPackageVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackageVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackageVersionsOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListPackageVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackageVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackageVersionsOutputResponse` public func listPackageVersionsPaginated(input: ListPackageVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackageVersionsInput.nextToken, outputKey: \ListPackageVersionsOutputResponse.nextToken, paginationFunction: self.listPackageVersions(input:)) } @@ -142,24 +138,23 @@ extension ListPackageVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPackageVersionsPaginated` -/// to access the nested member `[CodeartifactClientTypes.PackageVersionSummary]` -/// - Returns: `[CodeartifactClientTypes.PackageVersionSummary]` extension PaginatorSequence where Input == ListPackageVersionsInput, Output == ListPackageVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPackageVersionsPaginated` + /// to access the nested member `[CodeartifactClientTypes.PackageVersionSummary]` + /// - Returns: `[CodeartifactClientTypes.PackageVersionSummary]` public func versions() async throws -> [CodeartifactClientTypes.PackageVersionSummary] { return try await self.asyncCompactMap { item in item.versions } } } - -/// Paginate over `[ListRepositoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListRepositoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesOutputResponse` public func listRepositoriesPaginated(input: ListRepositoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositoriesInput.nextToken, outputKey: \ListRepositoriesOutputResponse.nextToken, paginationFunction: self.listRepositories(input:)) } @@ -174,24 +169,23 @@ extension ListRepositoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRepositoriesPaginated` -/// to access the nested member `[CodeartifactClientTypes.RepositorySummary]` -/// - Returns: `[CodeartifactClientTypes.RepositorySummary]` extension PaginatorSequence where Input == ListRepositoriesInput, Output == ListRepositoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRepositoriesPaginated` + /// to access the nested member `[CodeartifactClientTypes.RepositorySummary]` + /// - Returns: `[CodeartifactClientTypes.RepositorySummary]` public func repositories() async throws -> [CodeartifactClientTypes.RepositorySummary] { return try await self.asyncCompactMap { item in item.repositories } } } - -/// Paginate over `[ListRepositoriesInDomainOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositoriesInDomainInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesInDomainOutputResponse` extension CodeartifactClient { + /// Paginate over `[ListRepositoriesInDomainOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositoriesInDomainInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoriesInDomainOutputResponse` public func listRepositoriesInDomainPaginated(input: ListRepositoriesInDomainInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositoriesInDomainInput.nextToken, outputKey: \ListRepositoriesInDomainOutputResponse.nextToken, paginationFunction: self.listRepositoriesInDomain(input:)) } @@ -209,10 +203,10 @@ extension ListRepositoriesInDomainInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRepositoriesInDomainPaginated` -/// to access the nested member `[CodeartifactClientTypes.RepositorySummary]` -/// - Returns: `[CodeartifactClientTypes.RepositorySummary]` extension PaginatorSequence where Input == ListRepositoriesInDomainInput, Output == ListRepositoriesInDomainOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRepositoriesInDomainPaginated` + /// to access the nested member `[CodeartifactClientTypes.RepositorySummary]` + /// - Returns: `[CodeartifactClientTypes.RepositorySummary]` public func repositories() async throws -> [CodeartifactClientTypes.RepositorySummary] { return try await self.asyncCompactMap { item in item.repositories } } diff --git a/Sources/Services/AWSCodestarnotifications/Paginators.swift b/Sources/Services/AWSCodestarnotifications/Paginators.swift index 0ab0059ebf0..e70f6885549 100644 --- a/Sources/Services/AWSCodestarnotifications/Paginators.swift +++ b/Sources/Services/AWSCodestarnotifications/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEventTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventTypesOutputResponse` extension CodestarnotificationsClient { + /// Paginate over `[ListEventTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventTypesOutputResponse` public func listEventTypesPaginated(input: ListEventTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventTypesInput.nextToken, outputKey: \ListEventTypesOutputResponse.nextToken, paginationFunction: self.listEventTypes(input:)) } @@ -26,24 +25,23 @@ extension ListEventTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEventTypesPaginated` -/// to access the nested member `[CodestarnotificationsClientTypes.EventTypeSummary]` -/// - Returns: `[CodestarnotificationsClientTypes.EventTypeSummary]` extension PaginatorSequence where Input == ListEventTypesInput, Output == ListEventTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEventTypesPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.EventTypeSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.EventTypeSummary]` public func eventTypes() async throws -> [CodestarnotificationsClientTypes.EventTypeSummary] { return try await self.asyncCompactMap { item in item.eventTypes } } } - -/// Paginate over `[ListNotificationRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotificationRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotificationRulesOutputResponse` extension CodestarnotificationsClient { + /// Paginate over `[ListNotificationRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotificationRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotificationRulesOutputResponse` public func listNotificationRulesPaginated(input: ListNotificationRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotificationRulesInput.nextToken, outputKey: \ListNotificationRulesOutputResponse.nextToken, paginationFunction: self.listNotificationRules(input:)) } @@ -58,24 +56,23 @@ extension ListNotificationRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNotificationRulesPaginated` -/// to access the nested member `[CodestarnotificationsClientTypes.NotificationRuleSummary]` -/// - Returns: `[CodestarnotificationsClientTypes.NotificationRuleSummary]` extension PaginatorSequence where Input == ListNotificationRulesInput, Output == ListNotificationRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNotificationRulesPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.NotificationRuleSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.NotificationRuleSummary]` public func notificationRules() async throws -> [CodestarnotificationsClientTypes.NotificationRuleSummary] { return try await self.asyncCompactMap { item in item.notificationRules } } } - -/// Paginate over `[ListTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetsOutputResponse` extension CodestarnotificationsClient { + /// Paginate over `[ListTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetsOutputResponse` public func listTargetsPaginated(input: ListTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetsInput.nextToken, outputKey: \ListTargetsOutputResponse.nextToken, paginationFunction: self.listTargets(input:)) } @@ -90,10 +87,10 @@ extension ListTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTargetsPaginated` -/// to access the nested member `[CodestarnotificationsClientTypes.TargetSummary]` -/// - Returns: `[CodestarnotificationsClientTypes.TargetSummary]` extension PaginatorSequence where Input == ListTargetsInput, Output == ListTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTargetsPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.TargetSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.TargetSummary]` public func targets() async throws -> [CodestarnotificationsClientTypes.TargetSummary] { return try await self.asyncCompactMap { item in item.targets } } diff --git a/Sources/Services/AWSCognitoIdentity/Paginators.swift b/Sources/Services/AWSCognitoIdentity/Paginators.swift index d00f66234b5..6d99e583a8e 100644 --- a/Sources/Services/AWSCognitoIdentity/Paginators.swift +++ b/Sources/Services/AWSCognitoIdentity/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListIdentityPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentityPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentityPoolsOutputResponse` extension CognitoIdentityClient { + /// Paginate over `[ListIdentityPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentityPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentityPoolsOutputResponse` public func listIdentityPoolsPaginated(input: ListIdentityPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentityPoolsInput.nextToken, outputKey: \ListIdentityPoolsOutputResponse.nextToken, paginationFunction: self.listIdentityPools(input:)) } @@ -25,10 +24,10 @@ extension ListIdentityPoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIdentityPoolsPaginated` -/// to access the nested member `[CognitoIdentityClientTypes.IdentityPoolShortDescription]` -/// - Returns: `[CognitoIdentityClientTypes.IdentityPoolShortDescription]` extension PaginatorSequence where Input == ListIdentityPoolsInput, Output == ListIdentityPoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIdentityPoolsPaginated` + /// to access the nested member `[CognitoIdentityClientTypes.IdentityPoolShortDescription]` + /// - Returns: `[CognitoIdentityClientTypes.IdentityPoolShortDescription]` public func identityPools() async throws -> [CognitoIdentityClientTypes.IdentityPoolShortDescription] { return try await self.asyncCompactMap { item in item.identityPools } } diff --git a/Sources/Services/AWSCognitoIdentityProvider/Paginators.swift b/Sources/Services/AWSCognitoIdentityProvider/Paginators.swift index 8f9c429d0ba..10b1db1ec27 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/Paginators.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[AdminListGroupsForUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[AdminListGroupsForUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `AdminListGroupsForUserOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[AdminListGroupsForUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[AdminListGroupsForUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `AdminListGroupsForUserOutputResponse` public func adminListGroupsForUserPaginated(input: AdminListGroupsForUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \AdminListGroupsForUserInput.nextToken, outputKey: \AdminListGroupsForUserOutputResponse.nextToken, paginationFunction: self.adminListGroupsForUser(input:)) } @@ -27,24 +26,23 @@ extension AdminListGroupsForUserInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `adminListGroupsForUserPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.GroupType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.GroupType]` extension PaginatorSequence where Input == AdminListGroupsForUserInput, Output == AdminListGroupsForUserOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `adminListGroupsForUserPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.GroupType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.GroupType]` public func groups() async throws -> [CognitoIdentityProviderClientTypes.GroupType] { return try await self.asyncCompactMap { item in item.groups } } } - -/// Paginate over `[AdminListUserAuthEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[AdminListUserAuthEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `AdminListUserAuthEventsOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[AdminListUserAuthEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[AdminListUserAuthEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `AdminListUserAuthEventsOutputResponse` public func adminListUserAuthEventsPaginated(input: AdminListUserAuthEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \AdminListUserAuthEventsInput.nextToken, outputKey: \AdminListUserAuthEventsOutputResponse.nextToken, paginationFunction: self.adminListUserAuthEvents(input:)) } @@ -60,24 +58,23 @@ extension AdminListUserAuthEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `adminListUserAuthEventsPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.AuthEventType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.AuthEventType]` extension PaginatorSequence where Input == AdminListUserAuthEventsInput, Output == AdminListUserAuthEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `adminListUserAuthEventsPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.AuthEventType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.AuthEventType]` public func authEvents() async throws -> [CognitoIdentityProviderClientTypes.AuthEventType] { return try await self.asyncCompactMap { item in item.authEvents } } } - -/// Paginate over `[ListGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` public func listGroupsPaginated(input: ListGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsInput.nextToken, outputKey: \ListGroupsOutputResponse.nextToken, paginationFunction: self.listGroups(input:)) } @@ -92,24 +89,23 @@ extension ListGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGroupsPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.GroupType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.GroupType]` extension PaginatorSequence where Input == ListGroupsInput, Output == ListGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupsPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.GroupType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.GroupType]` public func groups() async throws -> [CognitoIdentityProviderClientTypes.GroupType] { return try await self.asyncCompactMap { item in item.groups } } } - -/// Paginate over `[ListIdentityProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentityProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListIdentityProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentityProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` public func listIdentityProvidersPaginated(input: ListIdentityProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentityProvidersInput.nextToken, outputKey: \ListIdentityProvidersOutputResponse.nextToken, paginationFunction: self.listIdentityProviders(input:)) } @@ -124,24 +120,23 @@ extension ListIdentityProvidersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIdentityProvidersPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.ProviderDescription]` -/// - Returns: `[CognitoIdentityProviderClientTypes.ProviderDescription]` extension PaginatorSequence where Input == ListIdentityProvidersInput, Output == ListIdentityProvidersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIdentityProvidersPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.ProviderDescription]` + /// - Returns: `[CognitoIdentityProviderClientTypes.ProviderDescription]` public func providers() async throws -> [CognitoIdentityProviderClientTypes.ProviderDescription] { return try await self.asyncCompactMap { item in item.providers } } } - -/// Paginate over `[ListResourceServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceServersOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListResourceServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceServersOutputResponse` public func listResourceServersPaginated(input: ListResourceServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceServersInput.nextToken, outputKey: \ListResourceServersOutputResponse.nextToken, paginationFunction: self.listResourceServers(input:)) } @@ -156,24 +151,23 @@ extension ListResourceServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceServersPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.ResourceServerType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.ResourceServerType]` extension PaginatorSequence where Input == ListResourceServersInput, Output == ListResourceServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceServersPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.ResourceServerType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.ResourceServerType]` public func resourceServers() async throws -> [CognitoIdentityProviderClientTypes.ResourceServerType] { return try await self.asyncCompactMap { item in item.resourceServers } } } - -/// Paginate over `[ListUserPoolClientsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserPoolClientsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserPoolClientsOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListUserPoolClientsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserPoolClientsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserPoolClientsOutputResponse` public func listUserPoolClientsPaginated(input: ListUserPoolClientsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserPoolClientsInput.nextToken, outputKey: \ListUserPoolClientsOutputResponse.nextToken, paginationFunction: self.listUserPoolClients(input:)) } @@ -188,24 +182,23 @@ extension ListUserPoolClientsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserPoolClientsPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.UserPoolClientDescription]` -/// - Returns: `[CognitoIdentityProviderClientTypes.UserPoolClientDescription]` extension PaginatorSequence where Input == ListUserPoolClientsInput, Output == ListUserPoolClientsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserPoolClientsPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.UserPoolClientDescription]` + /// - Returns: `[CognitoIdentityProviderClientTypes.UserPoolClientDescription]` public func userPoolClients() async throws -> [CognitoIdentityProviderClientTypes.UserPoolClientDescription] { return try await self.asyncCompactMap { item in item.userPoolClients } } } - -/// Paginate over `[ListUserPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserPoolsOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListUserPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserPoolsOutputResponse` public func listUserPoolsPaginated(input: ListUserPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserPoolsInput.nextToken, outputKey: \ListUserPoolsOutputResponse.nextToken, paginationFunction: self.listUserPools(input:)) } @@ -219,24 +212,23 @@ extension ListUserPoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserPoolsPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.UserPoolDescriptionType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.UserPoolDescriptionType]` extension PaginatorSequence where Input == ListUserPoolsInput, Output == ListUserPoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserPoolsPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.UserPoolDescriptionType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.UserPoolDescriptionType]` public func userPools() async throws -> [CognitoIdentityProviderClientTypes.UserPoolDescriptionType] { return try await self.asyncCompactMap { item in item.userPools } } } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.paginationToken, outputKey: \ListUsersOutputResponse.paginationToken, paginationFunction: self.listUsers(input:)) } @@ -253,24 +245,23 @@ extension ListUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.UserType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.UserType]` extension PaginatorSequence where Input == ListUsersInput, Output == ListUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.UserType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.UserType]` public func users() async throws -> [CognitoIdentityProviderClientTypes.UserType] { return try await self.asyncCompactMap { item in item.users } } } - -/// Paginate over `[ListUsersInGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersInGroupOutputResponse` extension CognitoIdentityProviderClient { + /// Paginate over `[ListUsersInGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersInGroupOutputResponse` public func listUsersInGroupPaginated(input: ListUsersInGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInGroupInput.nextToken, outputKey: \ListUsersInGroupOutputResponse.nextToken, paginationFunction: self.listUsersInGroup(input:)) } @@ -286,10 +277,10 @@ extension ListUsersInGroupInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersInGroupPaginated` -/// to access the nested member `[CognitoIdentityProviderClientTypes.UserType]` -/// - Returns: `[CognitoIdentityProviderClientTypes.UserType]` extension PaginatorSequence where Input == ListUsersInGroupInput, Output == ListUsersInGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersInGroupPaginated` + /// to access the nested member `[CognitoIdentityProviderClientTypes.UserType]` + /// - Returns: `[CognitoIdentityProviderClientTypes.UserType]` public func users() async throws -> [CognitoIdentityProviderClientTypes.UserType] { return try await self.asyncCompactMap { item in item.users } } diff --git a/Sources/Services/AWSComprehend/Paginators.swift b/Sources/Services/AWSComprehend/Paginators.swift index e6c032c123b..9497995f659 100644 --- a/Sources/Services/AWSComprehend/Paginators.swift +++ b/Sources/Services/AWSComprehend/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDocumentClassificationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDocumentClassificationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassificationJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListDocumentClassificationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDocumentClassificationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassificationJobsOutputResponse` public func listDocumentClassificationJobsPaginated(input: ListDocumentClassificationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDocumentClassificationJobsInput.nextToken, outputKey: \ListDocumentClassificationJobsOutputResponse.nextToken, paginationFunction: self.listDocumentClassificationJobs(input:)) } @@ -25,16 +24,15 @@ extension ListDocumentClassificationJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDocumentClassifiersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDocumentClassifiersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassifiersOutputResponse` extension ComprehendClient { + /// Paginate over `[ListDocumentClassifiersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDocumentClassifiersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassifiersOutputResponse` public func listDocumentClassifiersPaginated(input: ListDocumentClassifiersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDocumentClassifiersInput.nextToken, outputKey: \ListDocumentClassifiersOutputResponse.nextToken, paginationFunction: self.listDocumentClassifiers(input:)) } @@ -48,16 +46,15 @@ extension ListDocumentClassifiersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDocumentClassifierSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDocumentClassifierSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassifierSummariesOutputResponse` extension ComprehendClient { + /// Paginate over `[ListDocumentClassifierSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDocumentClassifierSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDocumentClassifierSummariesOutputResponse` public func listDocumentClassifierSummariesPaginated(input: ListDocumentClassifierSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDocumentClassifierSummariesInput.nextToken, outputKey: \ListDocumentClassifierSummariesOutputResponse.nextToken, paginationFunction: self.listDocumentClassifierSummaries(input:)) } @@ -70,16 +67,15 @@ extension ListDocumentClassifierSummariesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDominantLanguageDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDominantLanguageDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDominantLanguageDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListDominantLanguageDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDominantLanguageDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDominantLanguageDetectionJobsOutputResponse` public func listDominantLanguageDetectionJobsPaginated(input: ListDominantLanguageDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDominantLanguageDetectionJobsInput.nextToken, outputKey: \ListDominantLanguageDetectionJobsOutputResponse.nextToken, paginationFunction: self.listDominantLanguageDetectionJobs(input:)) } @@ -93,16 +89,15 @@ extension ListDominantLanguageDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` public func listEndpointsPaginated(input: ListEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointsInput.nextToken, outputKey: \ListEndpointsOutputResponse.nextToken, paginationFunction: self.listEndpoints(input:)) } @@ -117,24 +112,23 @@ extension ListEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` -/// to access the nested member `[ComprehendClientTypes.EndpointProperties]` -/// - Returns: `[ComprehendClientTypes.EndpointProperties]` extension PaginatorSequence where Input == ListEndpointsInput, Output == ListEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` + /// to access the nested member `[ComprehendClientTypes.EndpointProperties]` + /// - Returns: `[ComprehendClientTypes.EndpointProperties]` public func endpointPropertiesList() async throws -> [ComprehendClientTypes.EndpointProperties] { return try await self.asyncCompactMap { item in item.endpointPropertiesList } } } - -/// Paginate over `[ListEntitiesDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntitiesDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListEntitiesDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntitiesDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesDetectionJobsOutputResponse` public func listEntitiesDetectionJobsPaginated(input: ListEntitiesDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntitiesDetectionJobsInput.nextToken, outputKey: \ListEntitiesDetectionJobsOutputResponse.nextToken, paginationFunction: self.listEntitiesDetectionJobs(input:)) } @@ -148,16 +142,15 @@ extension ListEntitiesDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEntityRecognizersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntityRecognizersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntityRecognizersOutputResponse` extension ComprehendClient { + /// Paginate over `[ListEntityRecognizersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntityRecognizersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntityRecognizersOutputResponse` public func listEntityRecognizersPaginated(input: ListEntityRecognizersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntityRecognizersInput.nextToken, outputKey: \ListEntityRecognizersOutputResponse.nextToken, paginationFunction: self.listEntityRecognizers(input:)) } @@ -171,16 +164,15 @@ extension ListEntityRecognizersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEntityRecognizerSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntityRecognizerSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntityRecognizerSummariesOutputResponse` extension ComprehendClient { + /// Paginate over `[ListEntityRecognizerSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntityRecognizerSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntityRecognizerSummariesOutputResponse` public func listEntityRecognizerSummariesPaginated(input: ListEntityRecognizerSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntityRecognizerSummariesInput.nextToken, outputKey: \ListEntityRecognizerSummariesOutputResponse.nextToken, paginationFunction: self.listEntityRecognizerSummaries(input:)) } @@ -193,16 +185,15 @@ extension ListEntityRecognizerSummariesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEventsDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventsDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventsDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListEventsDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventsDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventsDetectionJobsOutputResponse` public func listEventsDetectionJobsPaginated(input: ListEventsDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventsDetectionJobsInput.nextToken, outputKey: \ListEventsDetectionJobsOutputResponse.nextToken, paginationFunction: self.listEventsDetectionJobs(input:)) } @@ -216,16 +207,15 @@ extension ListEventsDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListKeyPhrasesDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKeyPhrasesDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKeyPhrasesDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListKeyPhrasesDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKeyPhrasesDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKeyPhrasesDetectionJobsOutputResponse` public func listKeyPhrasesDetectionJobsPaginated(input: ListKeyPhrasesDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKeyPhrasesDetectionJobsInput.nextToken, outputKey: \ListKeyPhrasesDetectionJobsOutputResponse.nextToken, paginationFunction: self.listKeyPhrasesDetectionJobs(input:)) } @@ -239,16 +229,15 @@ extension ListKeyPhrasesDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPiiEntitiesDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPiiEntitiesDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPiiEntitiesDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListPiiEntitiesDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPiiEntitiesDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPiiEntitiesDetectionJobsOutputResponse` public func listPiiEntitiesDetectionJobsPaginated(input: ListPiiEntitiesDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPiiEntitiesDetectionJobsInput.nextToken, outputKey: \ListPiiEntitiesDetectionJobsOutputResponse.nextToken, paginationFunction: self.listPiiEntitiesDetectionJobs(input:)) } @@ -263,24 +252,23 @@ extension ListPiiEntitiesDetectionJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPiiEntitiesDetectionJobsPaginated` -/// to access the nested member `[ComprehendClientTypes.PiiEntitiesDetectionJobProperties]` -/// - Returns: `[ComprehendClientTypes.PiiEntitiesDetectionJobProperties]` extension PaginatorSequence where Input == ListPiiEntitiesDetectionJobsInput, Output == ListPiiEntitiesDetectionJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPiiEntitiesDetectionJobsPaginated` + /// to access the nested member `[ComprehendClientTypes.PiiEntitiesDetectionJobProperties]` + /// - Returns: `[ComprehendClientTypes.PiiEntitiesDetectionJobProperties]` public func piiEntitiesDetectionJobPropertiesList() async throws -> [ComprehendClientTypes.PiiEntitiesDetectionJobProperties] { return try await self.asyncCompactMap { item in item.piiEntitiesDetectionJobPropertiesList } } } - -/// Paginate over `[ListSentimentDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSentimentDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSentimentDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListSentimentDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSentimentDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSentimentDetectionJobsOutputResponse` public func listSentimentDetectionJobsPaginated(input: ListSentimentDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSentimentDetectionJobsInput.nextToken, outputKey: \ListSentimentDetectionJobsOutputResponse.nextToken, paginationFunction: self.listSentimentDetectionJobs(input:)) } @@ -294,16 +282,15 @@ extension ListSentimentDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTargetedSentimentDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetedSentimentDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetedSentimentDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListTargetedSentimentDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetedSentimentDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetedSentimentDetectionJobsOutputResponse` public func listTargetedSentimentDetectionJobsPaginated(input: ListTargetedSentimentDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetedSentimentDetectionJobsInput.nextToken, outputKey: \ListTargetedSentimentDetectionJobsOutputResponse.nextToken, paginationFunction: self.listTargetedSentimentDetectionJobs(input:)) } @@ -317,16 +304,15 @@ extension ListTargetedSentimentDetectionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTopicsDetectionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTopicsDetectionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTopicsDetectionJobsOutputResponse` extension ComprehendClient { + /// Paginate over `[ListTopicsDetectionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTopicsDetectionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTopicsDetectionJobsOutputResponse` public func listTopicsDetectionJobsPaginated(input: ListTopicsDetectionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTopicsDetectionJobsInput.nextToken, outputKey: \ListTopicsDetectionJobsOutputResponse.nextToken, paginationFunction: self.listTopicsDetectionJobs(input:)) } diff --git a/Sources/Services/AWSComputeOptimizer/Paginators.swift b/Sources/Services/AWSComputeOptimizer/Paginators.swift index df416850da2..0b4626690cb 100644 --- a/Sources/Services/AWSComputeOptimizer/Paginators.swift +++ b/Sources/Services/AWSComputeOptimizer/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeRecommendationExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRecommendationExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRecommendationExportJobsOutputResponse` extension ComputeOptimizerClient { + /// Paginate over `[DescribeRecommendationExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRecommendationExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRecommendationExportJobsOutputResponse` public func describeRecommendationExportJobsPaginated(input: DescribeRecommendationExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRecommendationExportJobsInput.nextToken, outputKey: \DescribeRecommendationExportJobsOutputResponse.nextToken, paginationFunction: self.describeRecommendationExportJobs(input:)) } @@ -27,24 +26,23 @@ extension DescribeRecommendationExportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRecommendationExportJobsPaginated` -/// to access the nested member `[ComputeOptimizerClientTypes.RecommendationExportJob]` -/// - Returns: `[ComputeOptimizerClientTypes.RecommendationExportJob]` extension PaginatorSequence where Input == DescribeRecommendationExportJobsInput, Output == DescribeRecommendationExportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRecommendationExportJobsPaginated` + /// to access the nested member `[ComputeOptimizerClientTypes.RecommendationExportJob]` + /// - Returns: `[ComputeOptimizerClientTypes.RecommendationExportJob]` public func recommendationExportJobs() async throws -> [ComputeOptimizerClientTypes.RecommendationExportJob] { return try await self.asyncCompactMap { item in item.recommendationExportJobs } } } - -/// Paginate over `[GetEnrollmentStatusesForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEnrollmentStatusesForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEnrollmentStatusesForOrganizationOutputResponse` extension ComputeOptimizerClient { + /// Paginate over `[GetEnrollmentStatusesForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEnrollmentStatusesForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEnrollmentStatusesForOrganizationOutputResponse` public func getEnrollmentStatusesForOrganizationPaginated(input: GetEnrollmentStatusesForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEnrollmentStatusesForOrganizationInput.nextToken, outputKey: \GetEnrollmentStatusesForOrganizationOutputResponse.nextToken, paginationFunction: self.getEnrollmentStatusesForOrganization(input:)) } @@ -59,24 +57,23 @@ extension GetEnrollmentStatusesForOrganizationInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `getEnrollmentStatusesForOrganizationPaginated` -/// to access the nested member `[ComputeOptimizerClientTypes.AccountEnrollmentStatus]` -/// - Returns: `[ComputeOptimizerClientTypes.AccountEnrollmentStatus]` extension PaginatorSequence where Input == GetEnrollmentStatusesForOrganizationInput, Output == GetEnrollmentStatusesForOrganizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getEnrollmentStatusesForOrganizationPaginated` + /// to access the nested member `[ComputeOptimizerClientTypes.AccountEnrollmentStatus]` + /// - Returns: `[ComputeOptimizerClientTypes.AccountEnrollmentStatus]` public func accountEnrollmentStatuses() async throws -> [ComputeOptimizerClientTypes.AccountEnrollmentStatus] { return try await self.asyncCompactMap { item in item.accountEnrollmentStatuses } } } - -/// Paginate over `[GetLambdaFunctionRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLambdaFunctionRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLambdaFunctionRecommendationsOutputResponse` extension ComputeOptimizerClient { + /// Paginate over `[GetLambdaFunctionRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLambdaFunctionRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLambdaFunctionRecommendationsOutputResponse` public func getLambdaFunctionRecommendationsPaginated(input: GetLambdaFunctionRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLambdaFunctionRecommendationsInput.nextToken, outputKey: \GetLambdaFunctionRecommendationsOutputResponse.nextToken, paginationFunction: self.getLambdaFunctionRecommendations(input:)) } @@ -93,24 +90,23 @@ extension GetLambdaFunctionRecommendationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getLambdaFunctionRecommendationsPaginated` -/// to access the nested member `[ComputeOptimizerClientTypes.LambdaFunctionRecommendation]` -/// - Returns: `[ComputeOptimizerClientTypes.LambdaFunctionRecommendation]` extension PaginatorSequence where Input == GetLambdaFunctionRecommendationsInput, Output == GetLambdaFunctionRecommendationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getLambdaFunctionRecommendationsPaginated` + /// to access the nested member `[ComputeOptimizerClientTypes.LambdaFunctionRecommendation]` + /// - Returns: `[ComputeOptimizerClientTypes.LambdaFunctionRecommendation]` public func lambdaFunctionRecommendations() async throws -> [ComputeOptimizerClientTypes.LambdaFunctionRecommendation] { return try await self.asyncCompactMap { item in item.lambdaFunctionRecommendations } } } - -/// Paginate over `[GetRecommendationPreferencesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetRecommendationPreferencesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetRecommendationPreferencesOutputResponse` extension ComputeOptimizerClient { + /// Paginate over `[GetRecommendationPreferencesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetRecommendationPreferencesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetRecommendationPreferencesOutputResponse` public func getRecommendationPreferencesPaginated(input: GetRecommendationPreferencesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetRecommendationPreferencesInput.nextToken, outputKey: \GetRecommendationPreferencesOutputResponse.nextToken, paginationFunction: self.getRecommendationPreferences(input:)) } @@ -126,24 +122,23 @@ extension GetRecommendationPreferencesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getRecommendationPreferencesPaginated` -/// to access the nested member `[ComputeOptimizerClientTypes.RecommendationPreferencesDetail]` -/// - Returns: `[ComputeOptimizerClientTypes.RecommendationPreferencesDetail]` extension PaginatorSequence where Input == GetRecommendationPreferencesInput, Output == GetRecommendationPreferencesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getRecommendationPreferencesPaginated` + /// to access the nested member `[ComputeOptimizerClientTypes.RecommendationPreferencesDetail]` + /// - Returns: `[ComputeOptimizerClientTypes.RecommendationPreferencesDetail]` public func recommendationPreferencesDetails() async throws -> [ComputeOptimizerClientTypes.RecommendationPreferencesDetail] { return try await self.asyncCompactMap { item in item.recommendationPreferencesDetails } } } - -/// Paginate over `[GetRecommendationSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetRecommendationSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetRecommendationSummariesOutputResponse` extension ComputeOptimizerClient { + /// Paginate over `[GetRecommendationSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetRecommendationSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetRecommendationSummariesOutputResponse` public func getRecommendationSummariesPaginated(input: GetRecommendationSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetRecommendationSummariesInput.nextToken, outputKey: \GetRecommendationSummariesOutputResponse.nextToken, paginationFunction: self.getRecommendationSummaries(input:)) } @@ -158,10 +153,10 @@ extension GetRecommendationSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getRecommendationSummariesPaginated` -/// to access the nested member `[ComputeOptimizerClientTypes.RecommendationSummary]` -/// - Returns: `[ComputeOptimizerClientTypes.RecommendationSummary]` extension PaginatorSequence where Input == GetRecommendationSummariesInput, Output == GetRecommendationSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getRecommendationSummariesPaginated` + /// to access the nested member `[ComputeOptimizerClientTypes.RecommendationSummary]` + /// - Returns: `[ComputeOptimizerClientTypes.RecommendationSummary]` public func recommendationSummaries() async throws -> [ComputeOptimizerClientTypes.RecommendationSummary] { return try await self.asyncCompactMap { item in item.recommendationSummaries } } diff --git a/Sources/Services/AWSConfigService/Paginators.swift b/Sources/Services/AWSConfigService/Paginators.swift index 9be2ac85b82..d454c53729e 100644 --- a/Sources/Services/AWSConfigService/Paginators.swift +++ b/Sources/Services/AWSConfigService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAggregateComplianceByConfigRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAggregateComplianceByConfigRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregateComplianceByConfigRulesOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeAggregateComplianceByConfigRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAggregateComplianceByConfigRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregateComplianceByConfigRulesOutputResponse` public func describeAggregateComplianceByConfigRulesPaginated(input: DescribeAggregateComplianceByConfigRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAggregateComplianceByConfigRulesInput.nextToken, outputKey: \DescribeAggregateComplianceByConfigRulesOutputResponse.nextToken, paginationFunction: self.describeAggregateComplianceByConfigRules(input:)) } @@ -26,16 +25,15 @@ extension DescribeAggregateComplianceByConfigRulesInput: ClientRuntime.PaginateT nextToken: token )} } - -/// Paginate over `[DescribeAggregateComplianceByConformancePacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAggregateComplianceByConformancePacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregateComplianceByConformancePacksOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeAggregateComplianceByConformancePacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAggregateComplianceByConformancePacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregateComplianceByConformancePacksOutputResponse` public func describeAggregateComplianceByConformancePacksPaginated(input: DescribeAggregateComplianceByConformancePacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAggregateComplianceByConformancePacksInput.nextToken, outputKey: \DescribeAggregateComplianceByConformancePacksOutputResponse.nextToken, paginationFunction: self.describeAggregateComplianceByConformancePacks(input:)) } @@ -51,24 +49,23 @@ extension DescribeAggregateComplianceByConformancePacksInput: ClientRuntime.Pagi )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAggregateComplianceByConformancePacksPaginated` -/// to access the nested member `[ConfigClientTypes.AggregateComplianceByConformancePack]` -/// - Returns: `[ConfigClientTypes.AggregateComplianceByConformancePack]` extension PaginatorSequence where Input == DescribeAggregateComplianceByConformancePacksInput, Output == DescribeAggregateComplianceByConformancePacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAggregateComplianceByConformancePacksPaginated` + /// to access the nested member `[ConfigClientTypes.AggregateComplianceByConformancePack]` + /// - Returns: `[ConfigClientTypes.AggregateComplianceByConformancePack]` public func aggregateComplianceByConformancePacks() async throws -> [ConfigClientTypes.AggregateComplianceByConformancePack] { return try await self.asyncCompactMap { item in item.aggregateComplianceByConformancePacks } } } - -/// Paginate over `[DescribeAggregationAuthorizationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAggregationAuthorizationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregationAuthorizationsOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeAggregationAuthorizationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAggregationAuthorizationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAggregationAuthorizationsOutputResponse` public func describeAggregationAuthorizationsPaginated(input: DescribeAggregationAuthorizationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAggregationAuthorizationsInput.nextToken, outputKey: \DescribeAggregationAuthorizationsOutputResponse.nextToken, paginationFunction: self.describeAggregationAuthorizations(input:)) } @@ -82,24 +79,23 @@ extension DescribeAggregationAuthorizationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAggregationAuthorizationsPaginated` -/// to access the nested member `[ConfigClientTypes.AggregationAuthorization]` -/// - Returns: `[ConfigClientTypes.AggregationAuthorization]` extension PaginatorSequence where Input == DescribeAggregationAuthorizationsInput, Output == DescribeAggregationAuthorizationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAggregationAuthorizationsPaginated` + /// to access the nested member `[ConfigClientTypes.AggregationAuthorization]` + /// - Returns: `[ConfigClientTypes.AggregationAuthorization]` public func aggregationAuthorizations() async throws -> [ConfigClientTypes.AggregationAuthorization] { return try await self.asyncCompactMap { item in item.aggregationAuthorizations } } } - -/// Paginate over `[DescribeComplianceByConfigRuleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeComplianceByConfigRuleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeComplianceByConfigRuleOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeComplianceByConfigRuleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeComplianceByConfigRuleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeComplianceByConfigRuleOutputResponse` public func describeComplianceByConfigRulePaginated(input: DescribeComplianceByConfigRuleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeComplianceByConfigRuleInput.nextToken, outputKey: \DescribeComplianceByConfigRuleOutputResponse.nextToken, paginationFunction: self.describeComplianceByConfigRule(input:)) } @@ -114,24 +110,23 @@ extension DescribeComplianceByConfigRuleInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeComplianceByConfigRulePaginated` -/// to access the nested member `[ConfigClientTypes.ComplianceByConfigRule]` -/// - Returns: `[ConfigClientTypes.ComplianceByConfigRule]` extension PaginatorSequence where Input == DescribeComplianceByConfigRuleInput, Output == DescribeComplianceByConfigRuleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeComplianceByConfigRulePaginated` + /// to access the nested member `[ConfigClientTypes.ComplianceByConfigRule]` + /// - Returns: `[ConfigClientTypes.ComplianceByConfigRule]` public func complianceByConfigRules() async throws -> [ConfigClientTypes.ComplianceByConfigRule] { return try await self.asyncCompactMap { item in item.complianceByConfigRules } } } - -/// Paginate over `[DescribeComplianceByResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeComplianceByResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeComplianceByResourceOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeComplianceByResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeComplianceByResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeComplianceByResourceOutputResponse` public func describeComplianceByResourcePaginated(input: DescribeComplianceByResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeComplianceByResourceInput.nextToken, outputKey: \DescribeComplianceByResourceOutputResponse.nextToken, paginationFunction: self.describeComplianceByResource(input:)) } @@ -148,24 +143,23 @@ extension DescribeComplianceByResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeComplianceByResourcePaginated` -/// to access the nested member `[ConfigClientTypes.ComplianceByResource]` -/// - Returns: `[ConfigClientTypes.ComplianceByResource]` extension PaginatorSequence where Input == DescribeComplianceByResourceInput, Output == DescribeComplianceByResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeComplianceByResourcePaginated` + /// to access the nested member `[ConfigClientTypes.ComplianceByResource]` + /// - Returns: `[ConfigClientTypes.ComplianceByResource]` public func complianceByResources() async throws -> [ConfigClientTypes.ComplianceByResource] { return try await self.asyncCompactMap { item in item.complianceByResources } } } - -/// Paginate over `[DescribeConfigRuleEvaluationStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConfigRuleEvaluationStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigRuleEvaluationStatusOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConfigRuleEvaluationStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConfigRuleEvaluationStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigRuleEvaluationStatusOutputResponse` public func describeConfigRuleEvaluationStatusPaginated(input: DescribeConfigRuleEvaluationStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConfigRuleEvaluationStatusInput.nextToken, outputKey: \DescribeConfigRuleEvaluationStatusOutputResponse.nextToken, paginationFunction: self.describeConfigRuleEvaluationStatus(input:)) } @@ -180,24 +174,23 @@ extension DescribeConfigRuleEvaluationStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConfigRuleEvaluationStatusPaginated` -/// to access the nested member `[ConfigClientTypes.ConfigRuleEvaluationStatus]` -/// - Returns: `[ConfigClientTypes.ConfigRuleEvaluationStatus]` extension PaginatorSequence where Input == DescribeConfigRuleEvaluationStatusInput, Output == DescribeConfigRuleEvaluationStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConfigRuleEvaluationStatusPaginated` + /// to access the nested member `[ConfigClientTypes.ConfigRuleEvaluationStatus]` + /// - Returns: `[ConfigClientTypes.ConfigRuleEvaluationStatus]` public func configRulesEvaluationStatus() async throws -> [ConfigClientTypes.ConfigRuleEvaluationStatus] { return try await self.asyncCompactMap { item in item.configRulesEvaluationStatus } } } - -/// Paginate over `[DescribeConfigRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConfigRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigRulesOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConfigRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConfigRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigRulesOutputResponse` public func describeConfigRulesPaginated(input: DescribeConfigRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConfigRulesInput.nextToken, outputKey: \DescribeConfigRulesOutputResponse.nextToken, paginationFunction: self.describeConfigRules(input:)) } @@ -212,24 +205,23 @@ extension DescribeConfigRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConfigRulesPaginated` -/// to access the nested member `[ConfigClientTypes.ConfigRule]` -/// - Returns: `[ConfigClientTypes.ConfigRule]` extension PaginatorSequence where Input == DescribeConfigRulesInput, Output == DescribeConfigRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConfigRulesPaginated` + /// to access the nested member `[ConfigClientTypes.ConfigRule]` + /// - Returns: `[ConfigClientTypes.ConfigRule]` public func configRules() async throws -> [ConfigClientTypes.ConfigRule] { return try await self.asyncCompactMap { item in item.configRules } } } - -/// Paginate over `[DescribeConfigurationAggregatorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConfigurationAggregatorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationAggregatorsOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConfigurationAggregatorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConfigurationAggregatorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationAggregatorsOutputResponse` public func describeConfigurationAggregatorsPaginated(input: DescribeConfigurationAggregatorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConfigurationAggregatorsInput.nextToken, outputKey: \DescribeConfigurationAggregatorsOutputResponse.nextToken, paginationFunction: self.describeConfigurationAggregators(input:)) } @@ -244,24 +236,23 @@ extension DescribeConfigurationAggregatorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConfigurationAggregatorsPaginated` -/// to access the nested member `[ConfigClientTypes.ConfigurationAggregator]` -/// - Returns: `[ConfigClientTypes.ConfigurationAggregator]` extension PaginatorSequence where Input == DescribeConfigurationAggregatorsInput, Output == DescribeConfigurationAggregatorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConfigurationAggregatorsPaginated` + /// to access the nested member `[ConfigClientTypes.ConfigurationAggregator]` + /// - Returns: `[ConfigClientTypes.ConfigurationAggregator]` public func configurationAggregators() async throws -> [ConfigClientTypes.ConfigurationAggregator] { return try await self.asyncCompactMap { item in item.configurationAggregators } } } - -/// Paginate over `[DescribeConfigurationAggregatorSourcesStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConfigurationAggregatorSourcesStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationAggregatorSourcesStatusOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConfigurationAggregatorSourcesStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConfigurationAggregatorSourcesStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationAggregatorSourcesStatusOutputResponse` public func describeConfigurationAggregatorSourcesStatusPaginated(input: DescribeConfigurationAggregatorSourcesStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConfigurationAggregatorSourcesStatusInput.nextToken, outputKey: \DescribeConfigurationAggregatorSourcesStatusOutputResponse.nextToken, paginationFunction: self.describeConfigurationAggregatorSourcesStatus(input:)) } @@ -277,24 +268,23 @@ extension DescribeConfigurationAggregatorSourcesStatusInput: ClientRuntime.Pagin )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConfigurationAggregatorSourcesStatusPaginated` -/// to access the nested member `[ConfigClientTypes.AggregatedSourceStatus]` -/// - Returns: `[ConfigClientTypes.AggregatedSourceStatus]` extension PaginatorSequence where Input == DescribeConfigurationAggregatorSourcesStatusInput, Output == DescribeConfigurationAggregatorSourcesStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConfigurationAggregatorSourcesStatusPaginated` + /// to access the nested member `[ConfigClientTypes.AggregatedSourceStatus]` + /// - Returns: `[ConfigClientTypes.AggregatedSourceStatus]` public func aggregatedSourceStatusList() async throws -> [ConfigClientTypes.AggregatedSourceStatus] { return try await self.asyncCompactMap { item in item.aggregatedSourceStatusList } } } - -/// Paginate over `[DescribeConformancePackComplianceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConformancePackComplianceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePackComplianceOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConformancePackComplianceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConformancePackComplianceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePackComplianceOutputResponse` public func describeConformancePackCompliancePaginated(input: DescribeConformancePackComplianceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConformancePackComplianceInput.nextToken, outputKey: \DescribeConformancePackComplianceOutputResponse.nextToken, paginationFunction: self.describeConformancePackCompliance(input:)) } @@ -309,16 +299,15 @@ extension DescribeConformancePackComplianceInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeConformancePacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConformancePacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePacksOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConformancePacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConformancePacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePacksOutputResponse` public func describeConformancePacksPaginated(input: DescribeConformancePacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConformancePacksInput.nextToken, outputKey: \DescribeConformancePacksOutputResponse.nextToken, paginationFunction: self.describeConformancePacks(input:)) } @@ -333,24 +322,23 @@ extension DescribeConformancePacksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConformancePacksPaginated` -/// to access the nested member `[ConfigClientTypes.ConformancePackDetail]` -/// - Returns: `[ConfigClientTypes.ConformancePackDetail]` extension PaginatorSequence where Input == DescribeConformancePacksInput, Output == DescribeConformancePacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConformancePacksPaginated` + /// to access the nested member `[ConfigClientTypes.ConformancePackDetail]` + /// - Returns: `[ConfigClientTypes.ConformancePackDetail]` public func conformancePackDetails() async throws -> [ConfigClientTypes.ConformancePackDetail] { return try await self.asyncCompactMap { item in item.conformancePackDetails } } } - -/// Paginate over `[DescribeConformancePackStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConformancePackStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePackStatusOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeConformancePackStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConformancePackStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConformancePackStatusOutputResponse` public func describeConformancePackStatusPaginated(input: DescribeConformancePackStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConformancePackStatusInput.nextToken, outputKey: \DescribeConformancePackStatusOutputResponse.nextToken, paginationFunction: self.describeConformancePackStatus(input:)) } @@ -365,24 +353,23 @@ extension DescribeConformancePackStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConformancePackStatusPaginated` -/// to access the nested member `[ConfigClientTypes.ConformancePackStatusDetail]` -/// - Returns: `[ConfigClientTypes.ConformancePackStatusDetail]` extension PaginatorSequence where Input == DescribeConformancePackStatusInput, Output == DescribeConformancePackStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConformancePackStatusPaginated` + /// to access the nested member `[ConfigClientTypes.ConformancePackStatusDetail]` + /// - Returns: `[ConfigClientTypes.ConformancePackStatusDetail]` public func conformancePackStatusDetails() async throws -> [ConfigClientTypes.ConformancePackStatusDetail] { return try await self.asyncCompactMap { item in item.conformancePackStatusDetails } } } - -/// Paginate over `[DescribeOrganizationConfigRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrganizationConfigRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConfigRulesOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeOrganizationConfigRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrganizationConfigRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConfigRulesOutputResponse` public func describeOrganizationConfigRulesPaginated(input: DescribeOrganizationConfigRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrganizationConfigRulesInput.nextToken, outputKey: \DescribeOrganizationConfigRulesOutputResponse.nextToken, paginationFunction: self.describeOrganizationConfigRules(input:)) } @@ -397,24 +384,23 @@ extension DescribeOrganizationConfigRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConfigRulesPaginated` -/// to access the nested member `[ConfigClientTypes.OrganizationConfigRule]` -/// - Returns: `[ConfigClientTypes.OrganizationConfigRule]` extension PaginatorSequence where Input == DescribeOrganizationConfigRulesInput, Output == DescribeOrganizationConfigRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConfigRulesPaginated` + /// to access the nested member `[ConfigClientTypes.OrganizationConfigRule]` + /// - Returns: `[ConfigClientTypes.OrganizationConfigRule]` public func organizationConfigRules() async throws -> [ConfigClientTypes.OrganizationConfigRule] { return try await self.asyncCompactMap { item in item.organizationConfigRules } } } - -/// Paginate over `[DescribeOrganizationConfigRuleStatusesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrganizationConfigRuleStatusesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConfigRuleStatusesOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeOrganizationConfigRuleStatusesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrganizationConfigRuleStatusesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConfigRuleStatusesOutputResponse` public func describeOrganizationConfigRuleStatusesPaginated(input: DescribeOrganizationConfigRuleStatusesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrganizationConfigRuleStatusesInput.nextToken, outputKey: \DescribeOrganizationConfigRuleStatusesOutputResponse.nextToken, paginationFunction: self.describeOrganizationConfigRuleStatuses(input:)) } @@ -429,24 +415,23 @@ extension DescribeOrganizationConfigRuleStatusesInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConfigRuleStatusesPaginated` -/// to access the nested member `[ConfigClientTypes.OrganizationConfigRuleStatus]` -/// - Returns: `[ConfigClientTypes.OrganizationConfigRuleStatus]` extension PaginatorSequence where Input == DescribeOrganizationConfigRuleStatusesInput, Output == DescribeOrganizationConfigRuleStatusesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConfigRuleStatusesPaginated` + /// to access the nested member `[ConfigClientTypes.OrganizationConfigRuleStatus]` + /// - Returns: `[ConfigClientTypes.OrganizationConfigRuleStatus]` public func organizationConfigRuleStatuses() async throws -> [ConfigClientTypes.OrganizationConfigRuleStatus] { return try await self.asyncCompactMap { item in item.organizationConfigRuleStatuses } } } - -/// Paginate over `[DescribeOrganizationConformancePacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrganizationConformancePacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConformancePacksOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeOrganizationConformancePacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrganizationConformancePacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConformancePacksOutputResponse` public func describeOrganizationConformancePacksPaginated(input: DescribeOrganizationConformancePacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrganizationConformancePacksInput.nextToken, outputKey: \DescribeOrganizationConformancePacksOutputResponse.nextToken, paginationFunction: self.describeOrganizationConformancePacks(input:)) } @@ -461,24 +446,23 @@ extension DescribeOrganizationConformancePacksInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConformancePacksPaginated` -/// to access the nested member `[ConfigClientTypes.OrganizationConformancePack]` -/// - Returns: `[ConfigClientTypes.OrganizationConformancePack]` extension PaginatorSequence where Input == DescribeOrganizationConformancePacksInput, Output == DescribeOrganizationConformancePacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConformancePacksPaginated` + /// to access the nested member `[ConfigClientTypes.OrganizationConformancePack]` + /// - Returns: `[ConfigClientTypes.OrganizationConformancePack]` public func organizationConformancePacks() async throws -> [ConfigClientTypes.OrganizationConformancePack] { return try await self.asyncCompactMap { item in item.organizationConformancePacks } } } - -/// Paginate over `[DescribeOrganizationConformancePackStatusesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrganizationConformancePackStatusesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConformancePackStatusesOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeOrganizationConformancePackStatusesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrganizationConformancePackStatusesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationConformancePackStatusesOutputResponse` public func describeOrganizationConformancePackStatusesPaginated(input: DescribeOrganizationConformancePackStatusesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrganizationConformancePackStatusesInput.nextToken, outputKey: \DescribeOrganizationConformancePackStatusesOutputResponse.nextToken, paginationFunction: self.describeOrganizationConformancePackStatuses(input:)) } @@ -493,24 +477,23 @@ extension DescribeOrganizationConformancePackStatusesInput: ClientRuntime.Pagina )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConformancePackStatusesPaginated` -/// to access the nested member `[ConfigClientTypes.OrganizationConformancePackStatus]` -/// - Returns: `[ConfigClientTypes.OrganizationConformancePackStatus]` extension PaginatorSequence where Input == DescribeOrganizationConformancePackStatusesInput, Output == DescribeOrganizationConformancePackStatusesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrganizationConformancePackStatusesPaginated` + /// to access the nested member `[ConfigClientTypes.OrganizationConformancePackStatus]` + /// - Returns: `[ConfigClientTypes.OrganizationConformancePackStatus]` public func organizationConformancePackStatuses() async throws -> [ConfigClientTypes.OrganizationConformancePackStatus] { return try await self.asyncCompactMap { item in item.organizationConformancePackStatuses } } } - -/// Paginate over `[DescribePendingAggregationRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePendingAggregationRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePendingAggregationRequestsOutputResponse` extension ConfigClient { + /// Paginate over `[DescribePendingAggregationRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePendingAggregationRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePendingAggregationRequestsOutputResponse` public func describePendingAggregationRequestsPaginated(input: DescribePendingAggregationRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePendingAggregationRequestsInput.nextToken, outputKey: \DescribePendingAggregationRequestsOutputResponse.nextToken, paginationFunction: self.describePendingAggregationRequests(input:)) } @@ -524,24 +507,23 @@ extension DescribePendingAggregationRequestsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePendingAggregationRequestsPaginated` -/// to access the nested member `[ConfigClientTypes.PendingAggregationRequest]` -/// - Returns: `[ConfigClientTypes.PendingAggregationRequest]` extension PaginatorSequence where Input == DescribePendingAggregationRequestsInput, Output == DescribePendingAggregationRequestsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePendingAggregationRequestsPaginated` + /// to access the nested member `[ConfigClientTypes.PendingAggregationRequest]` + /// - Returns: `[ConfigClientTypes.PendingAggregationRequest]` public func pendingAggregationRequests() async throws -> [ConfigClientTypes.PendingAggregationRequest] { return try await self.asyncCompactMap { item in item.pendingAggregationRequests } } } - -/// Paginate over `[DescribeRemediationExceptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRemediationExceptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRemediationExceptionsOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeRemediationExceptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRemediationExceptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRemediationExceptionsOutputResponse` public func describeRemediationExceptionsPaginated(input: DescribeRemediationExceptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRemediationExceptionsInput.nextToken, outputKey: \DescribeRemediationExceptionsOutputResponse.nextToken, paginationFunction: self.describeRemediationExceptions(input:)) } @@ -556,16 +538,15 @@ extension DescribeRemediationExceptionsInput: ClientRuntime.PaginateToken { resourceKeys: self.resourceKeys )} } - -/// Paginate over `[DescribeRemediationExecutionStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRemediationExecutionStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRemediationExecutionStatusOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeRemediationExecutionStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRemediationExecutionStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRemediationExecutionStatusOutputResponse` public func describeRemediationExecutionStatusPaginated(input: DescribeRemediationExecutionStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRemediationExecutionStatusInput.nextToken, outputKey: \DescribeRemediationExecutionStatusOutputResponse.nextToken, paginationFunction: self.describeRemediationExecutionStatus(input:)) } @@ -581,24 +562,23 @@ extension DescribeRemediationExecutionStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRemediationExecutionStatusPaginated` -/// to access the nested member `[ConfigClientTypes.RemediationExecutionStatus]` -/// - Returns: `[ConfigClientTypes.RemediationExecutionStatus]` extension PaginatorSequence where Input == DescribeRemediationExecutionStatusInput, Output == DescribeRemediationExecutionStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRemediationExecutionStatusPaginated` + /// to access the nested member `[ConfigClientTypes.RemediationExecutionStatus]` + /// - Returns: `[ConfigClientTypes.RemediationExecutionStatus]` public func remediationExecutionStatuses() async throws -> [ConfigClientTypes.RemediationExecutionStatus] { return try await self.asyncCompactMap { item in item.remediationExecutionStatuses } } } - -/// Paginate over `[DescribeRetentionConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRetentionConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRetentionConfigurationsOutputResponse` extension ConfigClient { + /// Paginate over `[DescribeRetentionConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRetentionConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRetentionConfigurationsOutputResponse` public func describeRetentionConfigurationsPaginated(input: DescribeRetentionConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRetentionConfigurationsInput.nextToken, outputKey: \DescribeRetentionConfigurationsOutputResponse.nextToken, paginationFunction: self.describeRetentionConfigurations(input:)) } @@ -612,24 +592,23 @@ extension DescribeRetentionConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRetentionConfigurationsPaginated` -/// to access the nested member `[ConfigClientTypes.RetentionConfiguration]` -/// - Returns: `[ConfigClientTypes.RetentionConfiguration]` extension PaginatorSequence where Input == DescribeRetentionConfigurationsInput, Output == DescribeRetentionConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRetentionConfigurationsPaginated` + /// to access the nested member `[ConfigClientTypes.RetentionConfiguration]` + /// - Returns: `[ConfigClientTypes.RetentionConfiguration]` public func retentionConfigurations() async throws -> [ConfigClientTypes.RetentionConfiguration] { return try await self.asyncCompactMap { item in item.retentionConfigurations } } } - -/// Paginate over `[GetAggregateComplianceDetailsByConfigRuleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAggregateComplianceDetailsByConfigRuleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAggregateComplianceDetailsByConfigRuleOutputResponse` extension ConfigClient { + /// Paginate over `[GetAggregateComplianceDetailsByConfigRuleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAggregateComplianceDetailsByConfigRuleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAggregateComplianceDetailsByConfigRuleOutputResponse` public func getAggregateComplianceDetailsByConfigRulePaginated(input: GetAggregateComplianceDetailsByConfigRuleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAggregateComplianceDetailsByConfigRuleInput.nextToken, outputKey: \GetAggregateComplianceDetailsByConfigRuleOutputResponse.nextToken, paginationFunction: self.getAggregateComplianceDetailsByConfigRule(input:)) } @@ -648,24 +627,23 @@ extension GetAggregateComplianceDetailsByConfigRuleInput: ClientRuntime.Paginate )} } -/// This paginator transforms the `AsyncSequence` returned by `getAggregateComplianceDetailsByConfigRulePaginated` -/// to access the nested member `[ConfigClientTypes.AggregateEvaluationResult]` -/// - Returns: `[ConfigClientTypes.AggregateEvaluationResult]` extension PaginatorSequence where Input == GetAggregateComplianceDetailsByConfigRuleInput, Output == GetAggregateComplianceDetailsByConfigRuleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getAggregateComplianceDetailsByConfigRulePaginated` + /// to access the nested member `[ConfigClientTypes.AggregateEvaluationResult]` + /// - Returns: `[ConfigClientTypes.AggregateEvaluationResult]` public func aggregateEvaluationResults() async throws -> [ConfigClientTypes.AggregateEvaluationResult] { return try await self.asyncCompactMap { item in item.aggregateEvaluationResults } } } - -/// Paginate over `[GetAggregateConfigRuleComplianceSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAggregateConfigRuleComplianceSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAggregateConfigRuleComplianceSummaryOutputResponse` extension ConfigClient { + /// Paginate over `[GetAggregateConfigRuleComplianceSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAggregateConfigRuleComplianceSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAggregateConfigRuleComplianceSummaryOutputResponse` public func getAggregateConfigRuleComplianceSummaryPaginated(input: GetAggregateConfigRuleComplianceSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAggregateConfigRuleComplianceSummaryInput.nextToken, outputKey: \GetAggregateConfigRuleComplianceSummaryOutputResponse.nextToken, paginationFunction: self.getAggregateConfigRuleComplianceSummary(input:)) } @@ -681,16 +659,15 @@ extension GetAggregateConfigRuleComplianceSummaryInput: ClientRuntime.PaginateTo nextToken: token )} } - -/// Paginate over `[GetAggregateConformancePackComplianceSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAggregateConformancePackComplianceSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAggregateConformancePackComplianceSummaryOutputResponse` extension ConfigClient { + /// Paginate over `[GetAggregateConformancePackComplianceSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAggregateConformancePackComplianceSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAggregateConformancePackComplianceSummaryOutputResponse` public func getAggregateConformancePackComplianceSummaryPaginated(input: GetAggregateConformancePackComplianceSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAggregateConformancePackComplianceSummaryInput.nextToken, outputKey: \GetAggregateConformancePackComplianceSummaryOutputResponse.nextToken, paginationFunction: self.getAggregateConformancePackComplianceSummary(input:)) } @@ -706,16 +683,15 @@ extension GetAggregateConformancePackComplianceSummaryInput: ClientRuntime.Pagin nextToken: token )} } - -/// Paginate over `[GetAggregateDiscoveredResourceCountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAggregateDiscoveredResourceCountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAggregateDiscoveredResourceCountsOutputResponse` extension ConfigClient { + /// Paginate over `[GetAggregateDiscoveredResourceCountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAggregateDiscoveredResourceCountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAggregateDiscoveredResourceCountsOutputResponse` public func getAggregateDiscoveredResourceCountsPaginated(input: GetAggregateDiscoveredResourceCountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAggregateDiscoveredResourceCountsInput.nextToken, outputKey: \GetAggregateDiscoveredResourceCountsOutputResponse.nextToken, paginationFunction: self.getAggregateDiscoveredResourceCounts(input:)) } @@ -731,16 +707,15 @@ extension GetAggregateDiscoveredResourceCountsInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[GetComplianceDetailsByConfigRuleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetComplianceDetailsByConfigRuleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetComplianceDetailsByConfigRuleOutputResponse` extension ConfigClient { + /// Paginate over `[GetComplianceDetailsByConfigRuleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetComplianceDetailsByConfigRuleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetComplianceDetailsByConfigRuleOutputResponse` public func getComplianceDetailsByConfigRulePaginated(input: GetComplianceDetailsByConfigRuleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetComplianceDetailsByConfigRuleInput.nextToken, outputKey: \GetComplianceDetailsByConfigRuleOutputResponse.nextToken, paginationFunction: self.getComplianceDetailsByConfigRule(input:)) } @@ -756,24 +731,23 @@ extension GetComplianceDetailsByConfigRuleInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getComplianceDetailsByConfigRulePaginated` -/// to access the nested member `[ConfigClientTypes.EvaluationResult]` -/// - Returns: `[ConfigClientTypes.EvaluationResult]` extension PaginatorSequence where Input == GetComplianceDetailsByConfigRuleInput, Output == GetComplianceDetailsByConfigRuleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getComplianceDetailsByConfigRulePaginated` + /// to access the nested member `[ConfigClientTypes.EvaluationResult]` + /// - Returns: `[ConfigClientTypes.EvaluationResult]` public func evaluationResults() async throws -> [ConfigClientTypes.EvaluationResult] { return try await self.asyncCompactMap { item in item.evaluationResults } } } - -/// Paginate over `[GetComplianceDetailsByResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetComplianceDetailsByResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetComplianceDetailsByResourceOutputResponse` extension ConfigClient { + /// Paginate over `[GetComplianceDetailsByResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetComplianceDetailsByResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetComplianceDetailsByResourceOutputResponse` public func getComplianceDetailsByResourcePaginated(input: GetComplianceDetailsByResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetComplianceDetailsByResourceInput.nextToken, outputKey: \GetComplianceDetailsByResourceOutputResponse.nextToken, paginationFunction: self.getComplianceDetailsByResource(input:)) } @@ -790,24 +764,23 @@ extension GetComplianceDetailsByResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getComplianceDetailsByResourcePaginated` -/// to access the nested member `[ConfigClientTypes.EvaluationResult]` -/// - Returns: `[ConfigClientTypes.EvaluationResult]` extension PaginatorSequence where Input == GetComplianceDetailsByResourceInput, Output == GetComplianceDetailsByResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getComplianceDetailsByResourcePaginated` + /// to access the nested member `[ConfigClientTypes.EvaluationResult]` + /// - Returns: `[ConfigClientTypes.EvaluationResult]` public func evaluationResults() async throws -> [ConfigClientTypes.EvaluationResult] { return try await self.asyncCompactMap { item in item.evaluationResults } } } - -/// Paginate over `[GetConformancePackComplianceDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConformancePackComplianceDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConformancePackComplianceDetailsOutputResponse` extension ConfigClient { + /// Paginate over `[GetConformancePackComplianceDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConformancePackComplianceDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConformancePackComplianceDetailsOutputResponse` public func getConformancePackComplianceDetailsPaginated(input: GetConformancePackComplianceDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConformancePackComplianceDetailsInput.nextToken, outputKey: \GetConformancePackComplianceDetailsOutputResponse.nextToken, paginationFunction: self.getConformancePackComplianceDetails(input:)) } @@ -822,16 +795,15 @@ extension GetConformancePackComplianceDetailsInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[GetConformancePackComplianceSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConformancePackComplianceSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConformancePackComplianceSummaryOutputResponse` extension ConfigClient { + /// Paginate over `[GetConformancePackComplianceSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConformancePackComplianceSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConformancePackComplianceSummaryOutputResponse` public func getConformancePackComplianceSummaryPaginated(input: GetConformancePackComplianceSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConformancePackComplianceSummaryInput.nextToken, outputKey: \GetConformancePackComplianceSummaryOutputResponse.nextToken, paginationFunction: self.getConformancePackComplianceSummary(input:)) } @@ -846,24 +818,23 @@ extension GetConformancePackComplianceSummaryInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `getConformancePackComplianceSummaryPaginated` -/// to access the nested member `[ConfigClientTypes.ConformancePackComplianceSummary]` -/// - Returns: `[ConfigClientTypes.ConformancePackComplianceSummary]` extension PaginatorSequence where Input == GetConformancePackComplianceSummaryInput, Output == GetConformancePackComplianceSummaryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getConformancePackComplianceSummaryPaginated` + /// to access the nested member `[ConfigClientTypes.ConformancePackComplianceSummary]` + /// - Returns: `[ConfigClientTypes.ConformancePackComplianceSummary]` public func conformancePackComplianceSummaryList() async throws -> [ConfigClientTypes.ConformancePackComplianceSummary] { return try await self.asyncCompactMap { item in item.conformancePackComplianceSummaryList } } } - -/// Paginate over `[GetDiscoveredResourceCountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDiscoveredResourceCountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDiscoveredResourceCountsOutputResponse` extension ConfigClient { + /// Paginate over `[GetDiscoveredResourceCountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDiscoveredResourceCountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDiscoveredResourceCountsOutputResponse` public func getDiscoveredResourceCountsPaginated(input: GetDiscoveredResourceCountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDiscoveredResourceCountsInput.nextToken, outputKey: \GetDiscoveredResourceCountsOutputResponse.nextToken, paginationFunction: self.getDiscoveredResourceCounts(input:)) } @@ -877,16 +848,15 @@ extension GetDiscoveredResourceCountsInput: ClientRuntime.PaginateToken { resourceTypes: self.resourceTypes )} } - -/// Paginate over `[GetOrganizationConfigRuleDetailedStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOrganizationConfigRuleDetailedStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOrganizationConfigRuleDetailedStatusOutputResponse` extension ConfigClient { + /// Paginate over `[GetOrganizationConfigRuleDetailedStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOrganizationConfigRuleDetailedStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOrganizationConfigRuleDetailedStatusOutputResponse` public func getOrganizationConfigRuleDetailedStatusPaginated(input: GetOrganizationConfigRuleDetailedStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOrganizationConfigRuleDetailedStatusInput.nextToken, outputKey: \GetOrganizationConfigRuleDetailedStatusOutputResponse.nextToken, paginationFunction: self.getOrganizationConfigRuleDetailedStatus(input:)) } @@ -902,24 +872,23 @@ extension GetOrganizationConfigRuleDetailedStatusInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `getOrganizationConfigRuleDetailedStatusPaginated` -/// to access the nested member `[ConfigClientTypes.MemberAccountStatus]` -/// - Returns: `[ConfigClientTypes.MemberAccountStatus]` extension PaginatorSequence where Input == GetOrganizationConfigRuleDetailedStatusInput, Output == GetOrganizationConfigRuleDetailedStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getOrganizationConfigRuleDetailedStatusPaginated` + /// to access the nested member `[ConfigClientTypes.MemberAccountStatus]` + /// - Returns: `[ConfigClientTypes.MemberAccountStatus]` public func organizationConfigRuleDetailedStatus() async throws -> [ConfigClientTypes.MemberAccountStatus] { return try await self.asyncCompactMap { item in item.organizationConfigRuleDetailedStatus } } } - -/// Paginate over `[GetOrganizationConformancePackDetailedStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOrganizationConformancePackDetailedStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOrganizationConformancePackDetailedStatusOutputResponse` extension ConfigClient { + /// Paginate over `[GetOrganizationConformancePackDetailedStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOrganizationConformancePackDetailedStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOrganizationConformancePackDetailedStatusOutputResponse` public func getOrganizationConformancePackDetailedStatusPaginated(input: GetOrganizationConformancePackDetailedStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOrganizationConformancePackDetailedStatusInput.nextToken, outputKey: \GetOrganizationConformancePackDetailedStatusOutputResponse.nextToken, paginationFunction: self.getOrganizationConformancePackDetailedStatus(input:)) } @@ -935,24 +904,23 @@ extension GetOrganizationConformancePackDetailedStatusInput: ClientRuntime.Pagin )} } -/// This paginator transforms the `AsyncSequence` returned by `getOrganizationConformancePackDetailedStatusPaginated` -/// to access the nested member `[ConfigClientTypes.OrganizationConformancePackDetailedStatus]` -/// - Returns: `[ConfigClientTypes.OrganizationConformancePackDetailedStatus]` extension PaginatorSequence where Input == GetOrganizationConformancePackDetailedStatusInput, Output == GetOrganizationConformancePackDetailedStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getOrganizationConformancePackDetailedStatusPaginated` + /// to access the nested member `[ConfigClientTypes.OrganizationConformancePackDetailedStatus]` + /// - Returns: `[ConfigClientTypes.OrganizationConformancePackDetailedStatus]` public func organizationConformancePackDetailedStatuses() async throws -> [ConfigClientTypes.OrganizationConformancePackDetailedStatus] { return try await self.asyncCompactMap { item in item.organizationConformancePackDetailedStatuses } } } - -/// Paginate over `[GetResourceConfigHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceConfigHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceConfigHistoryOutputResponse` extension ConfigClient { + /// Paginate over `[GetResourceConfigHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceConfigHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceConfigHistoryOutputResponse` public func getResourceConfigHistoryPaginated(input: GetResourceConfigHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceConfigHistoryInput.nextToken, outputKey: \GetResourceConfigHistoryOutputResponse.nextToken, paginationFunction: self.getResourceConfigHistory(input:)) } @@ -971,24 +939,23 @@ extension GetResourceConfigHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourceConfigHistoryPaginated` -/// to access the nested member `[ConfigClientTypes.ConfigurationItem]` -/// - Returns: `[ConfigClientTypes.ConfigurationItem]` extension PaginatorSequence where Input == GetResourceConfigHistoryInput, Output == GetResourceConfigHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourceConfigHistoryPaginated` + /// to access the nested member `[ConfigClientTypes.ConfigurationItem]` + /// - Returns: `[ConfigClientTypes.ConfigurationItem]` public func configurationItems() async throws -> [ConfigClientTypes.ConfigurationItem] { return try await self.asyncCompactMap { item in item.configurationItems } } } - -/// Paginate over `[ListAggregateDiscoveredResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAggregateDiscoveredResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAggregateDiscoveredResourcesOutputResponse` extension ConfigClient { + /// Paginate over `[ListAggregateDiscoveredResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAggregateDiscoveredResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAggregateDiscoveredResourcesOutputResponse` public func listAggregateDiscoveredResourcesPaginated(input: ListAggregateDiscoveredResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAggregateDiscoveredResourcesInput.nextToken, outputKey: \ListAggregateDiscoveredResourcesOutputResponse.nextToken, paginationFunction: self.listAggregateDiscoveredResources(input:)) } @@ -1005,24 +972,23 @@ extension ListAggregateDiscoveredResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAggregateDiscoveredResourcesPaginated` -/// to access the nested member `[ConfigClientTypes.AggregateResourceIdentifier]` -/// - Returns: `[ConfigClientTypes.AggregateResourceIdentifier]` extension PaginatorSequence where Input == ListAggregateDiscoveredResourcesInput, Output == ListAggregateDiscoveredResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAggregateDiscoveredResourcesPaginated` + /// to access the nested member `[ConfigClientTypes.AggregateResourceIdentifier]` + /// - Returns: `[ConfigClientTypes.AggregateResourceIdentifier]` public func resourceIdentifiers() async throws -> [ConfigClientTypes.AggregateResourceIdentifier] { return try await self.asyncCompactMap { item in item.resourceIdentifiers } } } - -/// Paginate over `[ListConformancePackComplianceScoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConformancePackComplianceScoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConformancePackComplianceScoresOutputResponse` extension ConfigClient { + /// Paginate over `[ListConformancePackComplianceScoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConformancePackComplianceScoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConformancePackComplianceScoresOutputResponse` public func listConformancePackComplianceScoresPaginated(input: ListConformancePackComplianceScoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConformancePackComplianceScoresInput.nextToken, outputKey: \ListConformancePackComplianceScoresOutputResponse.nextToken, paginationFunction: self.listConformancePackComplianceScores(input:)) } @@ -1038,16 +1004,15 @@ extension ListConformancePackComplianceScoresInput: ClientRuntime.PaginateToken sortOrder: self.sortOrder )} } - -/// Paginate over `[ListDiscoveredResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDiscoveredResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDiscoveredResourcesOutputResponse` extension ConfigClient { + /// Paginate over `[ListDiscoveredResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDiscoveredResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDiscoveredResourcesOutputResponse` public func listDiscoveredResourcesPaginated(input: ListDiscoveredResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDiscoveredResourcesInput.nextToken, outputKey: \ListDiscoveredResourcesOutputResponse.nextToken, paginationFunction: self.listDiscoveredResources(input:)) } @@ -1065,24 +1030,23 @@ extension ListDiscoveredResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDiscoveredResourcesPaginated` -/// to access the nested member `[ConfigClientTypes.ResourceIdentifier]` -/// - Returns: `[ConfigClientTypes.ResourceIdentifier]` extension PaginatorSequence where Input == ListDiscoveredResourcesInput, Output == ListDiscoveredResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDiscoveredResourcesPaginated` + /// to access the nested member `[ConfigClientTypes.ResourceIdentifier]` + /// - Returns: `[ConfigClientTypes.ResourceIdentifier]` public func resourceIdentifiers() async throws -> [ConfigClientTypes.ResourceIdentifier] { return try await self.asyncCompactMap { item in item.resourceIdentifiers } } } - -/// Paginate over `[ListResourceEvaluationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceEvaluationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceEvaluationsOutputResponse` extension ConfigClient { + /// Paginate over `[ListResourceEvaluationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceEvaluationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceEvaluationsOutputResponse` public func listResourceEvaluationsPaginated(input: ListResourceEvaluationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceEvaluationsInput.nextToken, outputKey: \ListResourceEvaluationsOutputResponse.nextToken, paginationFunction: self.listResourceEvaluations(input:)) } @@ -1097,24 +1061,23 @@ extension ListResourceEvaluationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceEvaluationsPaginated` -/// to access the nested member `[ConfigClientTypes.ResourceEvaluation]` -/// - Returns: `[ConfigClientTypes.ResourceEvaluation]` extension PaginatorSequence where Input == ListResourceEvaluationsInput, Output == ListResourceEvaluationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceEvaluationsPaginated` + /// to access the nested member `[ConfigClientTypes.ResourceEvaluation]` + /// - Returns: `[ConfigClientTypes.ResourceEvaluation]` public func resourceEvaluations() async throws -> [ConfigClientTypes.ResourceEvaluation] { return try await self.asyncCompactMap { item in item.resourceEvaluations } } } - -/// Paginate over `[ListStoredQueriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStoredQueriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStoredQueriesOutputResponse` extension ConfigClient { + /// Paginate over `[ListStoredQueriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStoredQueriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStoredQueriesOutputResponse` public func listStoredQueriesPaginated(input: ListStoredQueriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStoredQueriesInput.nextToken, outputKey: \ListStoredQueriesOutputResponse.nextToken, paginationFunction: self.listStoredQueries(input:)) } @@ -1127,16 +1090,15 @@ extension ListStoredQueriesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension ConfigClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -1151,24 +1113,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[ConfigClientTypes.Tag]` -/// - Returns: `[ConfigClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[ConfigClientTypes.Tag]` + /// - Returns: `[ConfigClientTypes.Tag]` public func tags() async throws -> [ConfigClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[SelectAggregateResourceConfigOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SelectAggregateResourceConfigInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SelectAggregateResourceConfigOutputResponse` extension ConfigClient { + /// Paginate over `[SelectAggregateResourceConfigOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SelectAggregateResourceConfigInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SelectAggregateResourceConfigOutputResponse` public func selectAggregateResourceConfigPaginated(input: SelectAggregateResourceConfigInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SelectAggregateResourceConfigInput.nextToken, outputKey: \SelectAggregateResourceConfigOutputResponse.nextToken, paginationFunction: self.selectAggregateResourceConfig(input:)) } @@ -1185,24 +1146,23 @@ extension SelectAggregateResourceConfigInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `selectAggregateResourceConfigPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == SelectAggregateResourceConfigInput, Output == SelectAggregateResourceConfigOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `selectAggregateResourceConfigPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func results() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.results } } } - -/// Paginate over `[SelectResourceConfigOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SelectResourceConfigInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SelectResourceConfigOutputResponse` extension ConfigClient { + /// Paginate over `[SelectResourceConfigOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SelectResourceConfigInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SelectResourceConfigOutputResponse` public func selectResourceConfigPaginated(input: SelectResourceConfigInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SelectResourceConfigInput.nextToken, outputKey: \SelectResourceConfigOutputResponse.nextToken, paginationFunction: self.selectResourceConfig(input:)) } @@ -1217,10 +1177,10 @@ extension SelectResourceConfigInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `selectResourceConfigPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == SelectResourceConfigInput, Output == SelectResourceConfigOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `selectResourceConfigPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func results() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.results } } diff --git a/Sources/Services/AWSConnect/Paginators.swift b/Sources/Services/AWSConnect/Paginators.swift index a39fb7081ae..c554f38a700 100644 --- a/Sources/Services/AWSConnect/Paginators.swift +++ b/Sources/Services/AWSConnect/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetCurrentMetricDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCurrentMetricDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCurrentMetricDataOutputResponse` extension ConnectClient { + /// Paginate over `[GetCurrentMetricDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCurrentMetricDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCurrentMetricDataOutputResponse` public func getCurrentMetricDataPaginated(input: GetCurrentMetricDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCurrentMetricDataInput.nextToken, outputKey: \GetCurrentMetricDataOutputResponse.nextToken, paginationFunction: self.getCurrentMetricData(input:)) } @@ -29,16 +28,15 @@ extension GetCurrentMetricDataInput: ClientRuntime.PaginateToken { sortCriteria: self.sortCriteria )} } - -/// Paginate over `[GetCurrentUserDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCurrentUserDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCurrentUserDataOutputResponse` extension ConnectClient { + /// Paginate over `[GetCurrentUserDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCurrentUserDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCurrentUserDataOutputResponse` public func getCurrentUserDataPaginated(input: GetCurrentUserDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCurrentUserDataInput.nextToken, outputKey: \GetCurrentUserDataOutputResponse.nextToken, paginationFunction: self.getCurrentUserData(input:)) } @@ -53,16 +51,15 @@ extension GetCurrentUserDataInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetMetricDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMetricDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMetricDataOutputResponse` extension ConnectClient { + /// Paginate over `[GetMetricDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMetricDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMetricDataOutputResponse` public func getMetricDataPaginated(input: GetMetricDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMetricDataInput.nextToken, outputKey: \GetMetricDataOutputResponse.nextToken, paginationFunction: self.getMetricData(input:)) } @@ -81,16 +78,15 @@ extension GetMetricDataInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[ListAgentStatusesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAgentStatusesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAgentStatusesOutputResponse` extension ConnectClient { + /// Paginate over `[ListAgentStatusesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAgentStatusesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAgentStatusesOutputResponse` public func listAgentStatusesPaginated(input: ListAgentStatusesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAgentStatusesInput.nextToken, outputKey: \ListAgentStatusesOutputResponse.nextToken, paginationFunction: self.listAgentStatuses(input:)) } @@ -106,24 +102,23 @@ extension ListAgentStatusesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAgentStatusesPaginated` -/// to access the nested member `[ConnectClientTypes.AgentStatusSummary]` -/// - Returns: `[ConnectClientTypes.AgentStatusSummary]` extension PaginatorSequence where Input == ListAgentStatusesInput, Output == ListAgentStatusesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAgentStatusesPaginated` + /// to access the nested member `[ConnectClientTypes.AgentStatusSummary]` + /// - Returns: `[ConnectClientTypes.AgentStatusSummary]` public func agentStatusSummaryList() async throws -> [ConnectClientTypes.AgentStatusSummary] { return try await self.asyncCompactMap { item in item.agentStatusSummaryList } } } - -/// Paginate over `[ListApprovedOriginsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApprovedOriginsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApprovedOriginsOutputResponse` extension ConnectClient { + /// Paginate over `[ListApprovedOriginsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApprovedOriginsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApprovedOriginsOutputResponse` public func listApprovedOriginsPaginated(input: ListApprovedOriginsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApprovedOriginsInput.nextToken, outputKey: \ListApprovedOriginsOutputResponse.nextToken, paginationFunction: self.listApprovedOrigins(input:)) } @@ -138,24 +133,23 @@ extension ListApprovedOriginsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApprovedOriginsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListApprovedOriginsInput, Output == ListApprovedOriginsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApprovedOriginsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func origins() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.origins } } } - -/// Paginate over `[ListBotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` extension ConnectClient { + /// Paginate over `[ListBotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` public func listBotsPaginated(input: ListBotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotsInput.nextToken, outputKey: \ListBotsOutputResponse.nextToken, paginationFunction: self.listBots(input:)) } @@ -171,24 +165,23 @@ extension ListBotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBotsPaginated` -/// to access the nested member `[ConnectClientTypes.LexBotConfig]` -/// - Returns: `[ConnectClientTypes.LexBotConfig]` extension PaginatorSequence where Input == ListBotsInput, Output == ListBotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBotsPaginated` + /// to access the nested member `[ConnectClientTypes.LexBotConfig]` + /// - Returns: `[ConnectClientTypes.LexBotConfig]` public func lexBots() async throws -> [ConnectClientTypes.LexBotConfig] { return try await self.asyncCompactMap { item in item.lexBots } } } - -/// Paginate over `[ListContactFlowModulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactFlowModulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactFlowModulesOutputResponse` extension ConnectClient { + /// Paginate over `[ListContactFlowModulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactFlowModulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactFlowModulesOutputResponse` public func listContactFlowModulesPaginated(input: ListContactFlowModulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactFlowModulesInput.nextToken, outputKey: \ListContactFlowModulesOutputResponse.nextToken, paginationFunction: self.listContactFlowModules(input:)) } @@ -204,24 +197,23 @@ extension ListContactFlowModulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContactFlowModulesPaginated` -/// to access the nested member `[ConnectClientTypes.ContactFlowModuleSummary]` -/// - Returns: `[ConnectClientTypes.ContactFlowModuleSummary]` extension PaginatorSequence where Input == ListContactFlowModulesInput, Output == ListContactFlowModulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContactFlowModulesPaginated` + /// to access the nested member `[ConnectClientTypes.ContactFlowModuleSummary]` + /// - Returns: `[ConnectClientTypes.ContactFlowModuleSummary]` public func contactFlowModulesSummaryList() async throws -> [ConnectClientTypes.ContactFlowModuleSummary] { return try await self.asyncCompactMap { item in item.contactFlowModulesSummaryList } } } - -/// Paginate over `[ListContactFlowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactFlowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactFlowsOutputResponse` extension ConnectClient { + /// Paginate over `[ListContactFlowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactFlowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactFlowsOutputResponse` public func listContactFlowsPaginated(input: ListContactFlowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactFlowsInput.nextToken, outputKey: \ListContactFlowsOutputResponse.nextToken, paginationFunction: self.listContactFlows(input:)) } @@ -237,24 +229,23 @@ extension ListContactFlowsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContactFlowsPaginated` -/// to access the nested member `[ConnectClientTypes.ContactFlowSummary]` -/// - Returns: `[ConnectClientTypes.ContactFlowSummary]` extension PaginatorSequence where Input == ListContactFlowsInput, Output == ListContactFlowsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContactFlowsPaginated` + /// to access the nested member `[ConnectClientTypes.ContactFlowSummary]` + /// - Returns: `[ConnectClientTypes.ContactFlowSummary]` public func contactFlowSummaryList() async throws -> [ConnectClientTypes.ContactFlowSummary] { return try await self.asyncCompactMap { item in item.contactFlowSummaryList } } } - -/// Paginate over `[ListContactReferencesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactReferencesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactReferencesOutputResponse` extension ConnectClient { + /// Paginate over `[ListContactReferencesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactReferencesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactReferencesOutputResponse` public func listContactReferencesPaginated(input: ListContactReferencesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactReferencesInput.nextToken, outputKey: \ListContactReferencesOutputResponse.nextToken, paginationFunction: self.listContactReferences(input:)) } @@ -270,24 +261,23 @@ extension ListContactReferencesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContactReferencesPaginated` -/// to access the nested member `[ConnectClientTypes.ReferenceSummary]` -/// - Returns: `[ConnectClientTypes.ReferenceSummary]` extension PaginatorSequence where Input == ListContactReferencesInput, Output == ListContactReferencesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContactReferencesPaginated` + /// to access the nested member `[ConnectClientTypes.ReferenceSummary]` + /// - Returns: `[ConnectClientTypes.ReferenceSummary]` public func referenceSummaryList() async throws -> [ConnectClientTypes.ReferenceSummary] { return try await self.asyncCompactMap { item in item.referenceSummaryList } } } - -/// Paginate over `[ListDefaultVocabulariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDefaultVocabulariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDefaultVocabulariesOutputResponse` extension ConnectClient { + /// Paginate over `[ListDefaultVocabulariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDefaultVocabulariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDefaultVocabulariesOutputResponse` public func listDefaultVocabulariesPaginated(input: ListDefaultVocabulariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDefaultVocabulariesInput.nextToken, outputKey: \ListDefaultVocabulariesOutputResponse.nextToken, paginationFunction: self.listDefaultVocabularies(input:)) } @@ -303,24 +293,23 @@ extension ListDefaultVocabulariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDefaultVocabulariesPaginated` -/// to access the nested member `[ConnectClientTypes.DefaultVocabulary]` -/// - Returns: `[ConnectClientTypes.DefaultVocabulary]` extension PaginatorSequence where Input == ListDefaultVocabulariesInput, Output == ListDefaultVocabulariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDefaultVocabulariesPaginated` + /// to access the nested member `[ConnectClientTypes.DefaultVocabulary]` + /// - Returns: `[ConnectClientTypes.DefaultVocabulary]` public func defaultVocabularyList() async throws -> [ConnectClientTypes.DefaultVocabulary] { return try await self.asyncCompactMap { item in item.defaultVocabularyList } } } - -/// Paginate over `[ListHoursOfOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHoursOfOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHoursOfOperationsOutputResponse` extension ConnectClient { + /// Paginate over `[ListHoursOfOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHoursOfOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHoursOfOperationsOutputResponse` public func listHoursOfOperationsPaginated(input: ListHoursOfOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHoursOfOperationsInput.nextToken, outputKey: \ListHoursOfOperationsOutputResponse.nextToken, paginationFunction: self.listHoursOfOperations(input:)) } @@ -335,24 +324,23 @@ extension ListHoursOfOperationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHoursOfOperationsPaginated` -/// to access the nested member `[ConnectClientTypes.HoursOfOperationSummary]` -/// - Returns: `[ConnectClientTypes.HoursOfOperationSummary]` extension PaginatorSequence where Input == ListHoursOfOperationsInput, Output == ListHoursOfOperationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHoursOfOperationsPaginated` + /// to access the nested member `[ConnectClientTypes.HoursOfOperationSummary]` + /// - Returns: `[ConnectClientTypes.HoursOfOperationSummary]` public func hoursOfOperationSummaryList() async throws -> [ConnectClientTypes.HoursOfOperationSummary] { return try await self.asyncCompactMap { item in item.hoursOfOperationSummaryList } } } - -/// Paginate over `[ListInstanceAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceAttributesOutputResponse` extension ConnectClient { + /// Paginate over `[ListInstanceAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceAttributesOutputResponse` public func listInstanceAttributesPaginated(input: ListInstanceAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceAttributesInput.nextToken, outputKey: \ListInstanceAttributesOutputResponse.nextToken, paginationFunction: self.listInstanceAttributes(input:)) } @@ -367,24 +355,23 @@ extension ListInstanceAttributesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceAttributesPaginated` -/// to access the nested member `[ConnectClientTypes.Attribute]` -/// - Returns: `[ConnectClientTypes.Attribute]` extension PaginatorSequence where Input == ListInstanceAttributesInput, Output == ListInstanceAttributesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceAttributesPaginated` + /// to access the nested member `[ConnectClientTypes.Attribute]` + /// - Returns: `[ConnectClientTypes.Attribute]` public func attributes() async throws -> [ConnectClientTypes.Attribute] { return try await self.asyncCompactMap { item in item.attributes } } } - -/// Paginate over `[ListInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` extension ConnectClient { + /// Paginate over `[ListInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` public func listInstancesPaginated(input: ListInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstancesInput.nextToken, outputKey: \ListInstancesOutputResponse.nextToken, paginationFunction: self.listInstances(input:)) } @@ -398,24 +385,23 @@ extension ListInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` -/// to access the nested member `[ConnectClientTypes.InstanceSummary]` -/// - Returns: `[ConnectClientTypes.InstanceSummary]` extension PaginatorSequence where Input == ListInstancesInput, Output == ListInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` + /// to access the nested member `[ConnectClientTypes.InstanceSummary]` + /// - Returns: `[ConnectClientTypes.InstanceSummary]` public func instanceSummaryList() async throws -> [ConnectClientTypes.InstanceSummary] { return try await self.asyncCompactMap { item in item.instanceSummaryList } } } - -/// Paginate over `[ListInstanceStorageConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceStorageConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceStorageConfigsOutputResponse` extension ConnectClient { + /// Paginate over `[ListInstanceStorageConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceStorageConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceStorageConfigsOutputResponse` public func listInstanceStorageConfigsPaginated(input: ListInstanceStorageConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceStorageConfigsInput.nextToken, outputKey: \ListInstanceStorageConfigsOutputResponse.nextToken, paginationFunction: self.listInstanceStorageConfigs(input:)) } @@ -431,24 +417,23 @@ extension ListInstanceStorageConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceStorageConfigsPaginated` -/// to access the nested member `[ConnectClientTypes.InstanceStorageConfig]` -/// - Returns: `[ConnectClientTypes.InstanceStorageConfig]` extension PaginatorSequence where Input == ListInstanceStorageConfigsInput, Output == ListInstanceStorageConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceStorageConfigsPaginated` + /// to access the nested member `[ConnectClientTypes.InstanceStorageConfig]` + /// - Returns: `[ConnectClientTypes.InstanceStorageConfig]` public func storageConfigs() async throws -> [ConnectClientTypes.InstanceStorageConfig] { return try await self.asyncCompactMap { item in item.storageConfigs } } } - -/// Paginate over `[ListIntegrationAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIntegrationAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIntegrationAssociationsOutputResponse` extension ConnectClient { + /// Paginate over `[ListIntegrationAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIntegrationAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIntegrationAssociationsOutputResponse` public func listIntegrationAssociationsPaginated(input: ListIntegrationAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIntegrationAssociationsInput.nextToken, outputKey: \ListIntegrationAssociationsOutputResponse.nextToken, paginationFunction: self.listIntegrationAssociations(input:)) } @@ -464,24 +449,23 @@ extension ListIntegrationAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIntegrationAssociationsPaginated` -/// to access the nested member `[ConnectClientTypes.IntegrationAssociationSummary]` -/// - Returns: `[ConnectClientTypes.IntegrationAssociationSummary]` extension PaginatorSequence where Input == ListIntegrationAssociationsInput, Output == ListIntegrationAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIntegrationAssociationsPaginated` + /// to access the nested member `[ConnectClientTypes.IntegrationAssociationSummary]` + /// - Returns: `[ConnectClientTypes.IntegrationAssociationSummary]` public func integrationAssociationSummaryList() async throws -> [ConnectClientTypes.IntegrationAssociationSummary] { return try await self.asyncCompactMap { item in item.integrationAssociationSummaryList } } } - -/// Paginate over `[ListLambdaFunctionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLambdaFunctionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLambdaFunctionsOutputResponse` extension ConnectClient { + /// Paginate over `[ListLambdaFunctionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLambdaFunctionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLambdaFunctionsOutputResponse` public func listLambdaFunctionsPaginated(input: ListLambdaFunctionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLambdaFunctionsInput.nextToken, outputKey: \ListLambdaFunctionsOutputResponse.nextToken, paginationFunction: self.listLambdaFunctions(input:)) } @@ -496,24 +480,23 @@ extension ListLambdaFunctionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLambdaFunctionsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListLambdaFunctionsInput, Output == ListLambdaFunctionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLambdaFunctionsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func lambdaFunctions() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.lambdaFunctions } } } - -/// Paginate over `[ListLexBotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLexBotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLexBotsOutputResponse` extension ConnectClient { + /// Paginate over `[ListLexBotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLexBotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLexBotsOutputResponse` public func listLexBotsPaginated(input: ListLexBotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLexBotsInput.nextToken, outputKey: \ListLexBotsOutputResponse.nextToken, paginationFunction: self.listLexBots(input:)) } @@ -528,24 +511,23 @@ extension ListLexBotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLexBotsPaginated` -/// to access the nested member `[ConnectClientTypes.LexBot]` -/// - Returns: `[ConnectClientTypes.LexBot]` extension PaginatorSequence where Input == ListLexBotsInput, Output == ListLexBotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLexBotsPaginated` + /// to access the nested member `[ConnectClientTypes.LexBot]` + /// - Returns: `[ConnectClientTypes.LexBot]` public func lexBots() async throws -> [ConnectClientTypes.LexBot] { return try await self.asyncCompactMap { item in item.lexBots } } } - -/// Paginate over `[ListPhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` extension ConnectClient { + /// Paginate over `[ListPhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOutputResponse` public func listPhoneNumbersPaginated(input: ListPhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumbersInput.nextToken, outputKey: \ListPhoneNumbersOutputResponse.nextToken, paginationFunction: self.listPhoneNumbers(input:)) } @@ -562,24 +544,23 @@ extension ListPhoneNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersPaginated` -/// to access the nested member `[ConnectClientTypes.PhoneNumberSummary]` -/// - Returns: `[ConnectClientTypes.PhoneNumberSummary]` extension PaginatorSequence where Input == ListPhoneNumbersInput, Output == ListPhoneNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersPaginated` + /// to access the nested member `[ConnectClientTypes.PhoneNumberSummary]` + /// - Returns: `[ConnectClientTypes.PhoneNumberSummary]` public func phoneNumberSummaryList() async throws -> [ConnectClientTypes.PhoneNumberSummary] { return try await self.asyncCompactMap { item in item.phoneNumberSummaryList } } } - -/// Paginate over `[ListPhoneNumbersV2OutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumbersV2Input]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersV2OutputResponse` extension ConnectClient { + /// Paginate over `[ListPhoneNumbersV2OutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumbersV2Input]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersV2OutputResponse` public func listPhoneNumbersV2Paginated(input: ListPhoneNumbersV2Input) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumbersV2Input.nextToken, outputKey: \ListPhoneNumbersV2OutputResponse.nextToken, paginationFunction: self.listPhoneNumbersV2(input:)) } @@ -597,24 +578,23 @@ extension ListPhoneNumbersV2Input: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersV2Paginated` -/// to access the nested member `[ConnectClientTypes.ListPhoneNumbersSummary]` -/// - Returns: `[ConnectClientTypes.ListPhoneNumbersSummary]` extension PaginatorSequence where Input == ListPhoneNumbersV2Input, Output == ListPhoneNumbersV2OutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersV2Paginated` + /// to access the nested member `[ConnectClientTypes.ListPhoneNumbersSummary]` + /// - Returns: `[ConnectClientTypes.ListPhoneNumbersSummary]` public func listPhoneNumbersSummaryList() async throws -> [ConnectClientTypes.ListPhoneNumbersSummary] { return try await self.asyncCompactMap { item in item.listPhoneNumbersSummaryList } } } - -/// Paginate over `[ListPromptsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPromptsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPromptsOutputResponse` extension ConnectClient { + /// Paginate over `[ListPromptsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPromptsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPromptsOutputResponse` public func listPromptsPaginated(input: ListPromptsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPromptsInput.nextToken, outputKey: \ListPromptsOutputResponse.nextToken, paginationFunction: self.listPrompts(input:)) } @@ -629,24 +609,23 @@ extension ListPromptsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPromptsPaginated` -/// to access the nested member `[ConnectClientTypes.PromptSummary]` -/// - Returns: `[ConnectClientTypes.PromptSummary]` extension PaginatorSequence where Input == ListPromptsInput, Output == ListPromptsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPromptsPaginated` + /// to access the nested member `[ConnectClientTypes.PromptSummary]` + /// - Returns: `[ConnectClientTypes.PromptSummary]` public func promptSummaryList() async throws -> [ConnectClientTypes.PromptSummary] { return try await self.asyncCompactMap { item in item.promptSummaryList } } } - -/// Paginate over `[ListQueueQuickConnectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueueQuickConnectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueueQuickConnectsOutputResponse` extension ConnectClient { + /// Paginate over `[ListQueueQuickConnectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueueQuickConnectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueueQuickConnectsOutputResponse` public func listQueueQuickConnectsPaginated(input: ListQueueQuickConnectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueueQuickConnectsInput.nextToken, outputKey: \ListQueueQuickConnectsOutputResponse.nextToken, paginationFunction: self.listQueueQuickConnects(input:)) } @@ -662,24 +641,23 @@ extension ListQueueQuickConnectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQueueQuickConnectsPaginated` -/// to access the nested member `[ConnectClientTypes.QuickConnectSummary]` -/// - Returns: `[ConnectClientTypes.QuickConnectSummary]` extension PaginatorSequence where Input == ListQueueQuickConnectsInput, Output == ListQueueQuickConnectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQueueQuickConnectsPaginated` + /// to access the nested member `[ConnectClientTypes.QuickConnectSummary]` + /// - Returns: `[ConnectClientTypes.QuickConnectSummary]` public func quickConnectSummaryList() async throws -> [ConnectClientTypes.QuickConnectSummary] { return try await self.asyncCompactMap { item in item.quickConnectSummaryList } } } - -/// Paginate over `[ListQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` extension ConnectClient { + /// Paginate over `[ListQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` public func listQueuesPaginated(input: ListQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueuesInput.nextToken, outputKey: \ListQueuesOutputResponse.nextToken, paginationFunction: self.listQueues(input:)) } @@ -695,24 +673,23 @@ extension ListQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` -/// to access the nested member `[ConnectClientTypes.QueueSummary]` -/// - Returns: `[ConnectClientTypes.QueueSummary]` extension PaginatorSequence where Input == ListQueuesInput, Output == ListQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` + /// to access the nested member `[ConnectClientTypes.QueueSummary]` + /// - Returns: `[ConnectClientTypes.QueueSummary]` public func queueSummaryList() async throws -> [ConnectClientTypes.QueueSummary] { return try await self.asyncCompactMap { item in item.queueSummaryList } } } - -/// Paginate over `[ListQuickConnectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQuickConnectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQuickConnectsOutputResponse` extension ConnectClient { + /// Paginate over `[ListQuickConnectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQuickConnectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQuickConnectsOutputResponse` public func listQuickConnectsPaginated(input: ListQuickConnectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQuickConnectsInput.nextToken, outputKey: \ListQuickConnectsOutputResponse.nextToken, paginationFunction: self.listQuickConnects(input:)) } @@ -728,24 +705,23 @@ extension ListQuickConnectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQuickConnectsPaginated` -/// to access the nested member `[ConnectClientTypes.QuickConnectSummary]` -/// - Returns: `[ConnectClientTypes.QuickConnectSummary]` extension PaginatorSequence where Input == ListQuickConnectsInput, Output == ListQuickConnectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQuickConnectsPaginated` + /// to access the nested member `[ConnectClientTypes.QuickConnectSummary]` + /// - Returns: `[ConnectClientTypes.QuickConnectSummary]` public func quickConnectSummaryList() async throws -> [ConnectClientTypes.QuickConnectSummary] { return try await self.asyncCompactMap { item in item.quickConnectSummaryList } } } - -/// Paginate over `[ListRoutingProfileQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoutingProfileQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoutingProfileQueuesOutputResponse` extension ConnectClient { + /// Paginate over `[ListRoutingProfileQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoutingProfileQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoutingProfileQueuesOutputResponse` public func listRoutingProfileQueuesPaginated(input: ListRoutingProfileQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoutingProfileQueuesInput.nextToken, outputKey: \ListRoutingProfileQueuesOutputResponse.nextToken, paginationFunction: self.listRoutingProfileQueues(input:)) } @@ -761,24 +737,23 @@ extension ListRoutingProfileQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRoutingProfileQueuesPaginated` -/// to access the nested member `[ConnectClientTypes.RoutingProfileQueueConfigSummary]` -/// - Returns: `[ConnectClientTypes.RoutingProfileQueueConfigSummary]` extension PaginatorSequence where Input == ListRoutingProfileQueuesInput, Output == ListRoutingProfileQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRoutingProfileQueuesPaginated` + /// to access the nested member `[ConnectClientTypes.RoutingProfileQueueConfigSummary]` + /// - Returns: `[ConnectClientTypes.RoutingProfileQueueConfigSummary]` public func routingProfileQueueConfigSummaryList() async throws -> [ConnectClientTypes.RoutingProfileQueueConfigSummary] { return try await self.asyncCompactMap { item in item.routingProfileQueueConfigSummaryList } } } - -/// Paginate over `[ListRoutingProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoutingProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoutingProfilesOutputResponse` extension ConnectClient { + /// Paginate over `[ListRoutingProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoutingProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoutingProfilesOutputResponse` public func listRoutingProfilesPaginated(input: ListRoutingProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoutingProfilesInput.nextToken, outputKey: \ListRoutingProfilesOutputResponse.nextToken, paginationFunction: self.listRoutingProfiles(input:)) } @@ -793,24 +768,23 @@ extension ListRoutingProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRoutingProfilesPaginated` -/// to access the nested member `[ConnectClientTypes.RoutingProfileSummary]` -/// - Returns: `[ConnectClientTypes.RoutingProfileSummary]` extension PaginatorSequence where Input == ListRoutingProfilesInput, Output == ListRoutingProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRoutingProfilesPaginated` + /// to access the nested member `[ConnectClientTypes.RoutingProfileSummary]` + /// - Returns: `[ConnectClientTypes.RoutingProfileSummary]` public func routingProfileSummaryList() async throws -> [ConnectClientTypes.RoutingProfileSummary] { return try await self.asyncCompactMap { item in item.routingProfileSummaryList } } } - -/// Paginate over `[ListRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` extension ConnectClient { + /// Paginate over `[ListRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` public func listRulesPaginated(input: ListRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRulesInput.nextToken, outputKey: \ListRulesOutputResponse.nextToken, paginationFunction: self.listRules(input:)) } @@ -827,24 +801,23 @@ extension ListRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` -/// to access the nested member `[ConnectClientTypes.RuleSummary]` -/// - Returns: `[ConnectClientTypes.RuleSummary]` extension PaginatorSequence where Input == ListRulesInput, Output == ListRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` + /// to access the nested member `[ConnectClientTypes.RuleSummary]` + /// - Returns: `[ConnectClientTypes.RuleSummary]` public func ruleSummaryList() async throws -> [ConnectClientTypes.RuleSummary] { return try await self.asyncCompactMap { item in item.ruleSummaryList } } } - -/// Paginate over `[ListSecurityKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityKeysOutputResponse` extension ConnectClient { + /// Paginate over `[ListSecurityKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityKeysOutputResponse` public func listSecurityKeysPaginated(input: ListSecurityKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityKeysInput.nextToken, outputKey: \ListSecurityKeysOutputResponse.nextToken, paginationFunction: self.listSecurityKeys(input:)) } @@ -859,24 +832,23 @@ extension ListSecurityKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityKeysPaginated` -/// to access the nested member `[ConnectClientTypes.SecurityKey]` -/// - Returns: `[ConnectClientTypes.SecurityKey]` extension PaginatorSequence where Input == ListSecurityKeysInput, Output == ListSecurityKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityKeysPaginated` + /// to access the nested member `[ConnectClientTypes.SecurityKey]` + /// - Returns: `[ConnectClientTypes.SecurityKey]` public func securityKeys() async throws -> [ConnectClientTypes.SecurityKey] { return try await self.asyncCompactMap { item in item.securityKeys } } } - -/// Paginate over `[ListSecurityProfilePermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityProfilePermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilePermissionsOutputResponse` extension ConnectClient { + /// Paginate over `[ListSecurityProfilePermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityProfilePermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilePermissionsOutputResponse` public func listSecurityProfilePermissionsPaginated(input: ListSecurityProfilePermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityProfilePermissionsInput.nextToken, outputKey: \ListSecurityProfilePermissionsOutputResponse.nextToken, paginationFunction: self.listSecurityProfilePermissions(input:)) } @@ -892,24 +864,23 @@ extension ListSecurityProfilePermissionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilePermissionsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListSecurityProfilePermissionsInput, Output == ListSecurityProfilePermissionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilePermissionsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func permissions() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.permissions } } } - -/// Paginate over `[ListSecurityProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesOutputResponse` extension ConnectClient { + /// Paginate over `[ListSecurityProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesOutputResponse` public func listSecurityProfilesPaginated(input: ListSecurityProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityProfilesInput.nextToken, outputKey: \ListSecurityProfilesOutputResponse.nextToken, paginationFunction: self.listSecurityProfiles(input:)) } @@ -924,24 +895,23 @@ extension ListSecurityProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesPaginated` -/// to access the nested member `[ConnectClientTypes.SecurityProfileSummary]` -/// - Returns: `[ConnectClientTypes.SecurityProfileSummary]` extension PaginatorSequence where Input == ListSecurityProfilesInput, Output == ListSecurityProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesPaginated` + /// to access the nested member `[ConnectClientTypes.SecurityProfileSummary]` + /// - Returns: `[ConnectClientTypes.SecurityProfileSummary]` public func securityProfileSummaryList() async throws -> [ConnectClientTypes.SecurityProfileSummary] { return try await self.asyncCompactMap { item in item.securityProfileSummaryList } } } - -/// Paginate over `[ListTaskTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTaskTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTaskTemplatesOutputResponse` extension ConnectClient { + /// Paginate over `[ListTaskTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTaskTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTaskTemplatesOutputResponse` public func listTaskTemplatesPaginated(input: ListTaskTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTaskTemplatesInput.nextToken, outputKey: \ListTaskTemplatesOutputResponse.nextToken, paginationFunction: self.listTaskTemplates(input:)) } @@ -958,24 +928,23 @@ extension ListTaskTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTaskTemplatesPaginated` -/// to access the nested member `[ConnectClientTypes.TaskTemplateMetadata]` -/// - Returns: `[ConnectClientTypes.TaskTemplateMetadata]` extension PaginatorSequence where Input == ListTaskTemplatesInput, Output == ListTaskTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTaskTemplatesPaginated` + /// to access the nested member `[ConnectClientTypes.TaskTemplateMetadata]` + /// - Returns: `[ConnectClientTypes.TaskTemplateMetadata]` public func taskTemplates() async throws -> [ConnectClientTypes.TaskTemplateMetadata] { return try await self.asyncCompactMap { item in item.taskTemplates } } } - -/// Paginate over `[ListTrafficDistributionGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrafficDistributionGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrafficDistributionGroupsOutputResponse` extension ConnectClient { + /// Paginate over `[ListTrafficDistributionGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrafficDistributionGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrafficDistributionGroupsOutputResponse` public func listTrafficDistributionGroupsPaginated(input: ListTrafficDistributionGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrafficDistributionGroupsInput.nextToken, outputKey: \ListTrafficDistributionGroupsOutputResponse.nextToken, paginationFunction: self.listTrafficDistributionGroups(input:)) } @@ -990,24 +959,23 @@ extension ListTrafficDistributionGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrafficDistributionGroupsPaginated` -/// to access the nested member `[ConnectClientTypes.TrafficDistributionGroupSummary]` -/// - Returns: `[ConnectClientTypes.TrafficDistributionGroupSummary]` extension PaginatorSequence where Input == ListTrafficDistributionGroupsInput, Output == ListTrafficDistributionGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrafficDistributionGroupsPaginated` + /// to access the nested member `[ConnectClientTypes.TrafficDistributionGroupSummary]` + /// - Returns: `[ConnectClientTypes.TrafficDistributionGroupSummary]` public func trafficDistributionGroupSummaryList() async throws -> [ConnectClientTypes.TrafficDistributionGroupSummary] { return try await self.asyncCompactMap { item in item.trafficDistributionGroupSummaryList } } } - -/// Paginate over `[ListUseCasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUseCasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUseCasesOutputResponse` extension ConnectClient { + /// Paginate over `[ListUseCasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUseCasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUseCasesOutputResponse` public func listUseCasesPaginated(input: ListUseCasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUseCasesInput.nextToken, outputKey: \ListUseCasesOutputResponse.nextToken, paginationFunction: self.listUseCases(input:)) } @@ -1023,24 +991,23 @@ extension ListUseCasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUseCasesPaginated` -/// to access the nested member `[ConnectClientTypes.UseCase]` -/// - Returns: `[ConnectClientTypes.UseCase]` extension PaginatorSequence where Input == ListUseCasesInput, Output == ListUseCasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUseCasesPaginated` + /// to access the nested member `[ConnectClientTypes.UseCase]` + /// - Returns: `[ConnectClientTypes.UseCase]` public func useCaseSummaryList() async throws -> [ConnectClientTypes.UseCase] { return try await self.asyncCompactMap { item in item.useCaseSummaryList } } } - -/// Paginate over `[ListUserHierarchyGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserHierarchyGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserHierarchyGroupsOutputResponse` extension ConnectClient { + /// Paginate over `[ListUserHierarchyGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserHierarchyGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserHierarchyGroupsOutputResponse` public func listUserHierarchyGroupsPaginated(input: ListUserHierarchyGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserHierarchyGroupsInput.nextToken, outputKey: \ListUserHierarchyGroupsOutputResponse.nextToken, paginationFunction: self.listUserHierarchyGroups(input:)) } @@ -1055,24 +1022,23 @@ extension ListUserHierarchyGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserHierarchyGroupsPaginated` -/// to access the nested member `[ConnectClientTypes.HierarchyGroupSummary]` -/// - Returns: `[ConnectClientTypes.HierarchyGroupSummary]` extension PaginatorSequence where Input == ListUserHierarchyGroupsInput, Output == ListUserHierarchyGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserHierarchyGroupsPaginated` + /// to access the nested member `[ConnectClientTypes.HierarchyGroupSummary]` + /// - Returns: `[ConnectClientTypes.HierarchyGroupSummary]` public func userHierarchyGroupSummaryList() async throws -> [ConnectClientTypes.HierarchyGroupSummary] { return try await self.asyncCompactMap { item in item.userHierarchyGroupSummaryList } } } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension ConnectClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.nextToken, outputKey: \ListUsersOutputResponse.nextToken, paginationFunction: self.listUsers(input:)) } @@ -1087,24 +1053,23 @@ extension ListUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` -/// to access the nested member `[ConnectClientTypes.UserSummary]` -/// - Returns: `[ConnectClientTypes.UserSummary]` extension PaginatorSequence where Input == ListUsersInput, Output == ListUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` + /// to access the nested member `[ConnectClientTypes.UserSummary]` + /// - Returns: `[ConnectClientTypes.UserSummary]` public func userSummaryList() async throws -> [ConnectClientTypes.UserSummary] { return try await self.asyncCompactMap { item in item.userSummaryList } } } - -/// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` extension ConnectClient { + /// Paginate over `[SearchAvailablePhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchAvailablePhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchAvailablePhoneNumbersOutputResponse` public func searchAvailablePhoneNumbersPaginated(input: SearchAvailablePhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchAvailablePhoneNumbersInput.nextToken, outputKey: \SearchAvailablePhoneNumbersOutputResponse.nextToken, paginationFunction: self.searchAvailablePhoneNumbers(input:)) } @@ -1122,24 +1087,23 @@ extension SearchAvailablePhoneNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchAvailablePhoneNumbersPaginated` -/// to access the nested member `[ConnectClientTypes.AvailableNumberSummary]` -/// - Returns: `[ConnectClientTypes.AvailableNumberSummary]` extension PaginatorSequence where Input == SearchAvailablePhoneNumbersInput, Output == SearchAvailablePhoneNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchAvailablePhoneNumbersPaginated` + /// to access the nested member `[ConnectClientTypes.AvailableNumberSummary]` + /// - Returns: `[ConnectClientTypes.AvailableNumberSummary]` public func availableNumbersList() async throws -> [ConnectClientTypes.AvailableNumberSummary] { return try await self.asyncCompactMap { item in item.availableNumbersList } } } - -/// Paginate over `[SearchQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchQueuesOutputResponse` extension ConnectClient { + /// Paginate over `[SearchQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchQueuesOutputResponse` public func searchQueuesPaginated(input: SearchQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchQueuesInput.nextToken, outputKey: \SearchQueuesOutputResponse.nextToken, paginationFunction: self.searchQueues(input:)) } @@ -1156,24 +1120,23 @@ extension SearchQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchQueuesPaginated` -/// to access the nested member `[ConnectClientTypes.Queue]` -/// - Returns: `[ConnectClientTypes.Queue]` extension PaginatorSequence where Input == SearchQueuesInput, Output == SearchQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchQueuesPaginated` + /// to access the nested member `[ConnectClientTypes.Queue]` + /// - Returns: `[ConnectClientTypes.Queue]` public func queues() async throws -> [ConnectClientTypes.Queue] { return try await self.asyncCompactMap { item in item.queues } } } - -/// Paginate over `[SearchRoutingProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchRoutingProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchRoutingProfilesOutputResponse` extension ConnectClient { + /// Paginate over `[SearchRoutingProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchRoutingProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchRoutingProfilesOutputResponse` public func searchRoutingProfilesPaginated(input: SearchRoutingProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchRoutingProfilesInput.nextToken, outputKey: \SearchRoutingProfilesOutputResponse.nextToken, paginationFunction: self.searchRoutingProfiles(input:)) } @@ -1190,24 +1153,23 @@ extension SearchRoutingProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchRoutingProfilesPaginated` -/// to access the nested member `[ConnectClientTypes.RoutingProfile]` -/// - Returns: `[ConnectClientTypes.RoutingProfile]` extension PaginatorSequence where Input == SearchRoutingProfilesInput, Output == SearchRoutingProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchRoutingProfilesPaginated` + /// to access the nested member `[ConnectClientTypes.RoutingProfile]` + /// - Returns: `[ConnectClientTypes.RoutingProfile]` public func routingProfiles() async throws -> [ConnectClientTypes.RoutingProfile] { return try await self.asyncCompactMap { item in item.routingProfiles } } } - -/// Paginate over `[SearchSecurityProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchSecurityProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchSecurityProfilesOutputResponse` extension ConnectClient { + /// Paginate over `[SearchSecurityProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchSecurityProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchSecurityProfilesOutputResponse` public func searchSecurityProfilesPaginated(input: SearchSecurityProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchSecurityProfilesInput.nextToken, outputKey: \SearchSecurityProfilesOutputResponse.nextToken, paginationFunction: self.searchSecurityProfiles(input:)) } @@ -1224,24 +1186,23 @@ extension SearchSecurityProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchSecurityProfilesPaginated` -/// to access the nested member `[ConnectClientTypes.SecurityProfileSearchSummary]` -/// - Returns: `[ConnectClientTypes.SecurityProfileSearchSummary]` extension PaginatorSequence where Input == SearchSecurityProfilesInput, Output == SearchSecurityProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchSecurityProfilesPaginated` + /// to access the nested member `[ConnectClientTypes.SecurityProfileSearchSummary]` + /// - Returns: `[ConnectClientTypes.SecurityProfileSearchSummary]` public func securityProfiles() async throws -> [ConnectClientTypes.SecurityProfileSearchSummary] { return try await self.asyncCompactMap { item in item.securityProfiles } } } - -/// Paginate over `[SearchUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchUsersOutputResponse` extension ConnectClient { + /// Paginate over `[SearchUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchUsersOutputResponse` public func searchUsersPaginated(input: SearchUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchUsersInput.nextToken, outputKey: \SearchUsersOutputResponse.nextToken, paginationFunction: self.searchUsers(input:)) } @@ -1258,24 +1219,23 @@ extension SearchUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchUsersPaginated` -/// to access the nested member `[ConnectClientTypes.UserSearchSummary]` -/// - Returns: `[ConnectClientTypes.UserSearchSummary]` extension PaginatorSequence where Input == SearchUsersInput, Output == SearchUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchUsersPaginated` + /// to access the nested member `[ConnectClientTypes.UserSearchSummary]` + /// - Returns: `[ConnectClientTypes.UserSearchSummary]` public func users() async throws -> [ConnectClientTypes.UserSearchSummary] { return try await self.asyncCompactMap { item in item.users } } } - -/// Paginate over `[SearchVocabulariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchVocabulariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchVocabulariesOutputResponse` extension ConnectClient { + /// Paginate over `[SearchVocabulariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchVocabulariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchVocabulariesOutputResponse` public func searchVocabulariesPaginated(input: SearchVocabulariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchVocabulariesInput.nextToken, outputKey: \SearchVocabulariesOutputResponse.nextToken, paginationFunction: self.searchVocabularies(input:)) } @@ -1293,10 +1253,10 @@ extension SearchVocabulariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchVocabulariesPaginated` -/// to access the nested member `[ConnectClientTypes.VocabularySummary]` -/// - Returns: `[ConnectClientTypes.VocabularySummary]` extension PaginatorSequence where Input == SearchVocabulariesInput, Output == SearchVocabulariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchVocabulariesPaginated` + /// to access the nested member `[ConnectClientTypes.VocabularySummary]` + /// - Returns: `[ConnectClientTypes.VocabularySummary]` public func vocabularySummaryList() async throws -> [ConnectClientTypes.VocabularySummary] { return try await self.asyncCompactMap { item in item.vocabularySummaryList } } diff --git a/Sources/Services/AWSConnect/models/Models.swift b/Sources/Services/AWSConnect/models/Models.swift index e79777c2ec7..b5e522d0c02 100644 --- a/Sources/Services/AWSConnect/models/Models.swift +++ b/Sources/Services/AWSConnect/models/Models.swift @@ -3240,7 +3240,9 @@ extension ConnectClientTypes { public enum ContactInitiationMethod: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case api case callback + case disconnect case inbound + case monitor case outbound case queueTransfer case transfer @@ -3250,7 +3252,9 @@ extension ConnectClientTypes { return [ .api, .callback, + .disconnect, .inbound, + .monitor, .outbound, .queueTransfer, .transfer, @@ -3265,7 +3269,9 @@ extension ConnectClientTypes { switch self { case .api: return "API" case .callback: return "CALLBACK" + case .disconnect: return "DISCONNECT" case .inbound: return "INBOUND" + case .monitor: return "MONITOR" case .outbound: return "OUTBOUND" case .queueTransfer: return "QUEUE_TRANSFER" case .transfer: return "TRANSFER" diff --git a/Sources/Services/AWSConnectCampaigns/Paginators.swift b/Sources/Services/AWSConnectCampaigns/Paginators.swift index d52d2a84786..4f91084b22f 100644 --- a/Sources/Services/AWSConnectCampaigns/Paginators.swift +++ b/Sources/Services/AWSConnectCampaigns/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCampaignsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCampaignsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCampaignsOutputResponse` extension ConnectCampaignsClient { + /// Paginate over `[ListCampaignsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCampaignsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCampaignsOutputResponse` public func listCampaignsPaginated(input: ListCampaignsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCampaignsInput.nextToken, outputKey: \ListCampaignsOutputResponse.nextToken, paginationFunction: self.listCampaigns(input:)) } @@ -26,10 +25,10 @@ extension ListCampaignsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCampaignsPaginated` -/// to access the nested member `[ConnectCampaignsClientTypes.CampaignSummary]` -/// - Returns: `[ConnectCampaignsClientTypes.CampaignSummary]` extension PaginatorSequence where Input == ListCampaignsInput, Output == ListCampaignsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCampaignsPaginated` + /// to access the nested member `[ConnectCampaignsClientTypes.CampaignSummary]` + /// - Returns: `[ConnectCampaignsClientTypes.CampaignSummary]` public func campaignSummaryList() async throws -> [ConnectCampaignsClientTypes.CampaignSummary] { return try await self.asyncCompactMap { item in item.campaignSummaryList } } diff --git a/Sources/Services/AWSConnectContactLens/Paginators.swift b/Sources/Services/AWSConnectContactLens/Paginators.swift index ebfaa2b4170..f79deaa4701 100644 --- a/Sources/Services/AWSConnectContactLens/Paginators.swift +++ b/Sources/Services/AWSConnectContactLens/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListRealtimeContactAnalysisSegmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRealtimeContactAnalysisSegmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRealtimeContactAnalysisSegmentsOutputResponse` extension ConnectContactLensClient { + /// Paginate over `[ListRealtimeContactAnalysisSegmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRealtimeContactAnalysisSegmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRealtimeContactAnalysisSegmentsOutputResponse` public func listRealtimeContactAnalysisSegmentsPaginated(input: ListRealtimeContactAnalysisSegmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRealtimeContactAnalysisSegmentsInput.nextToken, outputKey: \ListRealtimeContactAnalysisSegmentsOutputResponse.nextToken, paginationFunction: self.listRealtimeContactAnalysisSegments(input:)) } diff --git a/Sources/Services/AWSConnectParticipant/Paginators.swift b/Sources/Services/AWSConnectParticipant/Paginators.swift index 1dad3d097fb..1cda43d2cc4 100644 --- a/Sources/Services/AWSConnectParticipant/Paginators.swift +++ b/Sources/Services/AWSConnectParticipant/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetTranscriptOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTranscriptInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTranscriptOutputResponse` extension ConnectParticipantClient { + /// Paginate over `[GetTranscriptOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTranscriptInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTranscriptOutputResponse` public func getTranscriptPaginated(input: GetTranscriptInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTranscriptInput.nextToken, outputKey: \GetTranscriptOutputResponse.nextToken, paginationFunction: self.getTranscript(input:)) } diff --git a/Sources/Services/AWSControlTower/Paginators.swift b/Sources/Services/AWSControlTower/Paginators.swift index efc4e1c0a8b..2973943f85e 100644 --- a/Sources/Services/AWSControlTower/Paginators.swift +++ b/Sources/Services/AWSControlTower/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEnabledControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnabledControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnabledControlsOutputResponse` extension ControlTowerClient { + /// Paginate over `[ListEnabledControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnabledControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnabledControlsOutputResponse` public func listEnabledControlsPaginated(input: ListEnabledControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnabledControlsInput.nextToken, outputKey: \ListEnabledControlsOutputResponse.nextToken, paginationFunction: self.listEnabledControls(input:)) } @@ -26,10 +25,10 @@ extension ListEnabledControlsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEnabledControlsPaginated` -/// to access the nested member `[ControlTowerClientTypes.EnabledControlSummary]` -/// - Returns: `[ControlTowerClientTypes.EnabledControlSummary]` extension PaginatorSequence where Input == ListEnabledControlsInput, Output == ListEnabledControlsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEnabledControlsPaginated` + /// to access the nested member `[ControlTowerClientTypes.EnabledControlSummary]` + /// - Returns: `[ControlTowerClientTypes.EnabledControlSummary]` public func enabledControls() async throws -> [ControlTowerClientTypes.EnabledControlSummary] { return try await self.asyncCompactMap { item in item.enabledControls } } diff --git a/Sources/Services/AWSCostExplorer/EndpointResolver.swift b/Sources/Services/AWSCostExplorer/EndpointResolver.swift index 8413d813362..5d5952bed8b 100644 --- a/Sources/Services/AWSCostExplorer/EndpointResolver.swift +++ b/Sources/Services/AWSCostExplorer/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://ce.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://ce.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"ce\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://cost-explorer.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://ce.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://ce.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"ce\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ce.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSCostExplorer/Paginators.swift b/Sources/Services/AWSCostExplorer/Paginators.swift index 1f4ad6855e4..4103f9d6453 100644 --- a/Sources/Services/AWSCostExplorer/Paginators.swift +++ b/Sources/Services/AWSCostExplorer/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetSavingsPlansCoverageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSavingsPlansCoverageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSavingsPlansCoverageOutputResponse` extension CostExplorerClient { + /// Paginate over `[GetSavingsPlansCoverageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSavingsPlansCoverageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSavingsPlansCoverageOutputResponse` public func getSavingsPlansCoveragePaginated(input: GetSavingsPlansCoverageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSavingsPlansCoverageInput.nextToken, outputKey: \GetSavingsPlansCoverageOutputResponse.nextToken, paginationFunction: self.getSavingsPlansCoverage(input:)) } @@ -30,16 +29,15 @@ extension GetSavingsPlansCoverageInput: ClientRuntime.PaginateToken { timePeriod: self.timePeriod )} } - -/// Paginate over `[GetSavingsPlansUtilizationDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSavingsPlansUtilizationDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSavingsPlansUtilizationDetailsOutputResponse` extension CostExplorerClient { + /// Paginate over `[GetSavingsPlansUtilizationDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSavingsPlansUtilizationDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSavingsPlansUtilizationDetailsOutputResponse` public func getSavingsPlansUtilizationDetailsPaginated(input: GetSavingsPlansUtilizationDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSavingsPlansUtilizationDetailsInput.nextToken, outputKey: \GetSavingsPlansUtilizationDetailsOutputResponse.nextToken, paginationFunction: self.getSavingsPlansUtilizationDetails(input:)) } @@ -56,16 +54,15 @@ extension GetSavingsPlansUtilizationDetailsInput: ClientRuntime.PaginateToken { timePeriod: self.timePeriod )} } - -/// Paginate over `[ListCostAllocationTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCostAllocationTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCostAllocationTagsOutputResponse` extension CostExplorerClient { + /// Paginate over `[ListCostAllocationTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCostAllocationTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCostAllocationTagsOutputResponse` public func listCostAllocationTagsPaginated(input: ListCostAllocationTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCostAllocationTagsInput.nextToken, outputKey: \ListCostAllocationTagsOutputResponse.nextToken, paginationFunction: self.listCostAllocationTags(input:)) } @@ -81,16 +78,15 @@ extension ListCostAllocationTagsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListCostCategoryDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCostCategoryDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCostCategoryDefinitionsOutputResponse` extension CostExplorerClient { + /// Paginate over `[ListCostCategoryDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCostCategoryDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCostCategoryDefinitionsOutputResponse` public func listCostCategoryDefinitionsPaginated(input: ListCostCategoryDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCostCategoryDefinitionsInput.nextToken, outputKey: \ListCostCategoryDefinitionsOutputResponse.nextToken, paginationFunction: self.listCostCategoryDefinitions(input:)) } diff --git a/Sources/Services/AWSCostandUsageReportService/Paginators.swift b/Sources/Services/AWSCostandUsageReportService/Paginators.swift index 88c95bde9a2..d2ab4ff0bc9 100644 --- a/Sources/Services/AWSCostandUsageReportService/Paginators.swift +++ b/Sources/Services/AWSCostandUsageReportService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeReportDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReportDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReportDefinitionsOutputResponse` extension CostandUsageReportClient { + /// Paginate over `[DescribeReportDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReportDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReportDefinitionsOutputResponse` public func describeReportDefinitionsPaginated(input: DescribeReportDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReportDefinitionsInput.nextToken, outputKey: \DescribeReportDefinitionsOutputResponse.nextToken, paginationFunction: self.describeReportDefinitions(input:)) } diff --git a/Sources/Services/AWSDataBrew/Paginators.swift b/Sources/Services/AWSDataBrew/Paginators.swift index 17cf3807d57..ef630c9cb80 100644 --- a/Sources/Services/AWSDataBrew/Paginators.swift +++ b/Sources/Services/AWSDataBrew/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -25,24 +24,23 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` -/// to access the nested member `[DataBrewClientTypes.Dataset]` -/// - Returns: `[DataBrewClientTypes.Dataset]` extension PaginatorSequence where Input == ListDatasetsInput, Output == ListDatasetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` + /// to access the nested member `[DataBrewClientTypes.Dataset]` + /// - Returns: `[DataBrewClientTypes.Dataset]` public func datasets() async throws -> [DataBrewClientTypes.Dataset] { return try await self.asyncCompactMap { item in item.datasets } } } - -/// Paginate over `[ListJobRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobRunsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListJobRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobRunsOutputResponse` public func listJobRunsPaginated(input: ListJobRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobRunsInput.nextToken, outputKey: \ListJobRunsOutputResponse.nextToken, paginationFunction: self.listJobRuns(input:)) } @@ -57,24 +55,23 @@ extension ListJobRunsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobRunsPaginated` -/// to access the nested member `[DataBrewClientTypes.JobRun]` -/// - Returns: `[DataBrewClientTypes.JobRun]` extension PaginatorSequence where Input == ListJobRunsInput, Output == ListJobRunsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobRunsPaginated` + /// to access the nested member `[DataBrewClientTypes.JobRun]` + /// - Returns: `[DataBrewClientTypes.JobRun]` public func jobRuns() async throws -> [DataBrewClientTypes.JobRun] { return try await self.asyncCompactMap { item in item.jobRuns } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -90,24 +87,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[DataBrewClientTypes.Job]` -/// - Returns: `[DataBrewClientTypes.Job]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[DataBrewClientTypes.Job]` + /// - Returns: `[DataBrewClientTypes.Job]` public func jobs() async throws -> [DataBrewClientTypes.Job] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -121,24 +117,23 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[DataBrewClientTypes.Project]` -/// - Returns: `[DataBrewClientTypes.Project]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[DataBrewClientTypes.Project]` + /// - Returns: `[DataBrewClientTypes.Project]` public func projects() async throws -> [DataBrewClientTypes.Project] { return try await self.asyncCompactMap { item in item.projects } } } - -/// Paginate over `[ListRecipesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecipesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecipesOutputResponse` extension DataBrewClient { + /// Paginate over `[ListRecipesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecipesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecipesOutputResponse` public func listRecipesPaginated(input: ListRecipesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecipesInput.nextToken, outputKey: \ListRecipesOutputResponse.nextToken, paginationFunction: self.listRecipes(input:)) } @@ -153,24 +148,23 @@ extension ListRecipesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecipesPaginated` -/// to access the nested member `[DataBrewClientTypes.Recipe]` -/// - Returns: `[DataBrewClientTypes.Recipe]` extension PaginatorSequence where Input == ListRecipesInput, Output == ListRecipesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecipesPaginated` + /// to access the nested member `[DataBrewClientTypes.Recipe]` + /// - Returns: `[DataBrewClientTypes.Recipe]` public func recipes() async throws -> [DataBrewClientTypes.Recipe] { return try await self.asyncCompactMap { item in item.recipes } } } - -/// Paginate over `[ListRecipeVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecipeVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecipeVersionsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListRecipeVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecipeVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecipeVersionsOutputResponse` public func listRecipeVersionsPaginated(input: ListRecipeVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecipeVersionsInput.nextToken, outputKey: \ListRecipeVersionsOutputResponse.nextToken, paginationFunction: self.listRecipeVersions(input:)) } @@ -185,24 +179,23 @@ extension ListRecipeVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecipeVersionsPaginated` -/// to access the nested member `[DataBrewClientTypes.Recipe]` -/// - Returns: `[DataBrewClientTypes.Recipe]` extension PaginatorSequence where Input == ListRecipeVersionsInput, Output == ListRecipeVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecipeVersionsPaginated` + /// to access the nested member `[DataBrewClientTypes.Recipe]` + /// - Returns: `[DataBrewClientTypes.Recipe]` public func recipes() async throws -> [DataBrewClientTypes.Recipe] { return try await self.asyncCompactMap { item in item.recipes } } } - -/// Paginate over `[ListRulesetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRulesetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRulesetsOutputResponse` extension DataBrewClient { + /// Paginate over `[ListRulesetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRulesetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRulesetsOutputResponse` public func listRulesetsPaginated(input: ListRulesetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRulesetsInput.nextToken, outputKey: \ListRulesetsOutputResponse.nextToken, paginationFunction: self.listRulesets(input:)) } @@ -217,24 +210,23 @@ extension ListRulesetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRulesetsPaginated` -/// to access the nested member `[DataBrewClientTypes.RulesetItem]` -/// - Returns: `[DataBrewClientTypes.RulesetItem]` extension PaginatorSequence where Input == ListRulesetsInput, Output == ListRulesetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRulesetsPaginated` + /// to access the nested member `[DataBrewClientTypes.RulesetItem]` + /// - Returns: `[DataBrewClientTypes.RulesetItem]` public func rulesets() async throws -> [DataBrewClientTypes.RulesetItem] { return try await self.asyncCompactMap { item in item.rulesets } } } - -/// Paginate over `[ListSchedulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchedulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchedulesOutputResponse` extension DataBrewClient { + /// Paginate over `[ListSchedulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchedulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchedulesOutputResponse` public func listSchedulesPaginated(input: ListSchedulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchedulesInput.nextToken, outputKey: \ListSchedulesOutputResponse.nextToken, paginationFunction: self.listSchedules(input:)) } @@ -249,10 +241,10 @@ extension ListSchedulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchedulesPaginated` -/// to access the nested member `[DataBrewClientTypes.Schedule]` -/// - Returns: `[DataBrewClientTypes.Schedule]` extension PaginatorSequence where Input == ListSchedulesInput, Output == ListSchedulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchedulesPaginated` + /// to access the nested member `[DataBrewClientTypes.Schedule]` + /// - Returns: `[DataBrewClientTypes.Schedule]` public func schedules() async throws -> [DataBrewClientTypes.Schedule] { return try await self.asyncCompactMap { item in item.schedules } } diff --git a/Sources/Services/AWSDataExchange/Paginators.swift b/Sources/Services/AWSDataExchange/Paginators.swift index 3160f884e01..5330db4b314 100644 --- a/Sources/Services/AWSDataExchange/Paginators.swift +++ b/Sources/Services/AWSDataExchange/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDataSetRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSetRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSetRevisionsOutputResponse` extension DataExchangeClient { + /// Paginate over `[ListDataSetRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSetRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSetRevisionsOutputResponse` public func listDataSetRevisionsPaginated(input: ListDataSetRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSetRevisionsInput.nextToken, outputKey: \ListDataSetRevisionsOutputResponse.nextToken, paginationFunction: self.listDataSetRevisions(input:)) } @@ -26,24 +25,23 @@ extension ListDataSetRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataSetRevisionsPaginated` -/// to access the nested member `[DataExchangeClientTypes.RevisionEntry]` -/// - Returns: `[DataExchangeClientTypes.RevisionEntry]` extension PaginatorSequence where Input == ListDataSetRevisionsInput, Output == ListDataSetRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataSetRevisionsPaginated` + /// to access the nested member `[DataExchangeClientTypes.RevisionEntry]` + /// - Returns: `[DataExchangeClientTypes.RevisionEntry]` public func revisions() async throws -> [DataExchangeClientTypes.RevisionEntry] { return try await self.asyncCompactMap { item in item.revisions } } } - -/// Paginate over `[ListDataSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSetsOutputResponse` extension DataExchangeClient { + /// Paginate over `[ListDataSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSetsOutputResponse` public func listDataSetsPaginated(input: ListDataSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSetsInput.nextToken, outputKey: \ListDataSetsOutputResponse.nextToken, paginationFunction: self.listDataSets(input:)) } @@ -58,24 +56,23 @@ extension ListDataSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataSetsPaginated` -/// to access the nested member `[DataExchangeClientTypes.DataSetEntry]` -/// - Returns: `[DataExchangeClientTypes.DataSetEntry]` extension PaginatorSequence where Input == ListDataSetsInput, Output == ListDataSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataSetsPaginated` + /// to access the nested member `[DataExchangeClientTypes.DataSetEntry]` + /// - Returns: `[DataExchangeClientTypes.DataSetEntry]` public func dataSets() async throws -> [DataExchangeClientTypes.DataSetEntry] { return try await self.asyncCompactMap { item in item.dataSets } } } - -/// Paginate over `[ListEventActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventActionsOutputResponse` extension DataExchangeClient { + /// Paginate over `[ListEventActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventActionsOutputResponse` public func listEventActionsPaginated(input: ListEventActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventActionsInput.nextToken, outputKey: \ListEventActionsOutputResponse.nextToken, paginationFunction: self.listEventActions(input:)) } @@ -90,24 +87,23 @@ extension ListEventActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEventActionsPaginated` -/// to access the nested member `[DataExchangeClientTypes.EventActionEntry]` -/// - Returns: `[DataExchangeClientTypes.EventActionEntry]` extension PaginatorSequence where Input == ListEventActionsInput, Output == ListEventActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEventActionsPaginated` + /// to access the nested member `[DataExchangeClientTypes.EventActionEntry]` + /// - Returns: `[DataExchangeClientTypes.EventActionEntry]` public func eventActions() async throws -> [DataExchangeClientTypes.EventActionEntry] { return try await self.asyncCompactMap { item in item.eventActions } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension DataExchangeClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -123,24 +119,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[DataExchangeClientTypes.JobEntry]` -/// - Returns: `[DataExchangeClientTypes.JobEntry]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[DataExchangeClientTypes.JobEntry]` + /// - Returns: `[DataExchangeClientTypes.JobEntry]` public func jobs() async throws -> [DataExchangeClientTypes.JobEntry] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListRevisionAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRevisionAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRevisionAssetsOutputResponse` extension DataExchangeClient { + /// Paginate over `[ListRevisionAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRevisionAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRevisionAssetsOutputResponse` public func listRevisionAssetsPaginated(input: ListRevisionAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRevisionAssetsInput.nextToken, outputKey: \ListRevisionAssetsOutputResponse.nextToken, paginationFunction: self.listRevisionAssets(input:)) } @@ -156,10 +151,10 @@ extension ListRevisionAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRevisionAssetsPaginated` -/// to access the nested member `[DataExchangeClientTypes.AssetEntry]` -/// - Returns: `[DataExchangeClientTypes.AssetEntry]` extension PaginatorSequence where Input == ListRevisionAssetsInput, Output == ListRevisionAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRevisionAssetsPaginated` + /// to access the nested member `[DataExchangeClientTypes.AssetEntry]` + /// - Returns: `[DataExchangeClientTypes.AssetEntry]` public func assets() async throws -> [DataExchangeClientTypes.AssetEntry] { return try await self.asyncCompactMap { item in item.assets } } diff --git a/Sources/Services/AWSDataPipeline/Paginators.swift b/Sources/Services/AWSDataPipeline/Paginators.swift index a347d51f147..b5546a228d6 100644 --- a/Sources/Services/AWSDataPipeline/Paginators.swift +++ b/Sources/Services/AWSDataPipeline/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeObjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeObjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeObjectsOutputResponse` extension DataPipelineClient { + /// Paginate over `[DescribeObjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeObjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeObjectsOutputResponse` public func describeObjectsPaginated(input: DescribeObjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeObjectsInput.marker, outputKey: \DescribeObjectsOutputResponse.marker, paginationFunction: self.describeObjects(input:)) } @@ -27,24 +26,23 @@ extension DescribeObjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeObjectsPaginated` -/// to access the nested member `[DataPipelineClientTypes.PipelineObject]` -/// - Returns: `[DataPipelineClientTypes.PipelineObject]` extension PaginatorSequence where Input == DescribeObjectsInput, Output == DescribeObjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeObjectsPaginated` + /// to access the nested member `[DataPipelineClientTypes.PipelineObject]` + /// - Returns: `[DataPipelineClientTypes.PipelineObject]` public func pipelineObjects() async throws -> [DataPipelineClientTypes.PipelineObject] { return try await self.asyncCompactMap { item in item.pipelineObjects } } } - -/// Paginate over `[ListPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` extension DataPipelineClient { + /// Paginate over `[ListPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` public func listPipelinesPaginated(input: ListPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelinesInput.marker, outputKey: \ListPipelinesOutputResponse.marker, paginationFunction: self.listPipelines(input:)) } @@ -57,24 +55,23 @@ extension ListPipelinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` -/// to access the nested member `[DataPipelineClientTypes.PipelineIdName]` -/// - Returns: `[DataPipelineClientTypes.PipelineIdName]` extension PaginatorSequence where Input == ListPipelinesInput, Output == ListPipelinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` + /// to access the nested member `[DataPipelineClientTypes.PipelineIdName]` + /// - Returns: `[DataPipelineClientTypes.PipelineIdName]` public func pipelineIdList() async throws -> [DataPipelineClientTypes.PipelineIdName] { return try await self.asyncCompactMap { item in item.pipelineIdList } } } - -/// Paginate over `[QueryObjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[QueryObjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `QueryObjectsOutputResponse` extension DataPipelineClient { + /// Paginate over `[QueryObjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[QueryObjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `QueryObjectsOutputResponse` public func queryObjectsPaginated(input: QueryObjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \QueryObjectsInput.marker, outputKey: \QueryObjectsOutputResponse.marker, paginationFunction: self.queryObjects(input:)) } @@ -91,10 +88,10 @@ extension QueryObjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `queryObjectsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == QueryObjectsInput, Output == QueryObjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `queryObjectsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ids() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ids } } diff --git a/Sources/Services/AWSDataSync/Paginators.swift b/Sources/Services/AWSDataSync/Paginators.swift index 281afde9fa1..4484818e48a 100644 --- a/Sources/Services/AWSDataSync/Paginators.swift +++ b/Sources/Services/AWSDataSync/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAgentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAgentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAgentsOutputResponse` extension DataSyncClient { + /// Paginate over `[ListAgentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAgentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAgentsOutputResponse` public func listAgentsPaginated(input: ListAgentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAgentsInput.nextToken, outputKey: \ListAgentsOutputResponse.nextToken, paginationFunction: self.listAgents(input:)) } @@ -25,24 +24,23 @@ extension ListAgentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAgentsPaginated` -/// to access the nested member `[DataSyncClientTypes.AgentListEntry]` -/// - Returns: `[DataSyncClientTypes.AgentListEntry]` extension PaginatorSequence where Input == ListAgentsInput, Output == ListAgentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAgentsPaginated` + /// to access the nested member `[DataSyncClientTypes.AgentListEntry]` + /// - Returns: `[DataSyncClientTypes.AgentListEntry]` public func agents() async throws -> [DataSyncClientTypes.AgentListEntry] { return try await self.asyncCompactMap { item in item.agents } } } - -/// Paginate over `[ListLocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLocationsOutputResponse` extension DataSyncClient { + /// Paginate over `[ListLocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLocationsOutputResponse` public func listLocationsPaginated(input: ListLocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLocationsInput.nextToken, outputKey: \ListLocationsOutputResponse.nextToken, paginationFunction: self.listLocations(input:)) } @@ -57,24 +55,23 @@ extension ListLocationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLocationsPaginated` -/// to access the nested member `[DataSyncClientTypes.LocationListEntry]` -/// - Returns: `[DataSyncClientTypes.LocationListEntry]` extension PaginatorSequence where Input == ListLocationsInput, Output == ListLocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLocationsPaginated` + /// to access the nested member `[DataSyncClientTypes.LocationListEntry]` + /// - Returns: `[DataSyncClientTypes.LocationListEntry]` public func locations() async throws -> [DataSyncClientTypes.LocationListEntry] { return try await self.asyncCompactMap { item in item.locations } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension DataSyncClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -89,24 +86,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[DataSyncClientTypes.TagListEntry]` -/// - Returns: `[DataSyncClientTypes.TagListEntry]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[DataSyncClientTypes.TagListEntry]` + /// - Returns: `[DataSyncClientTypes.TagListEntry]` public func tags() async throws -> [DataSyncClientTypes.TagListEntry] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListTaskExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTaskExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTaskExecutionsOutputResponse` extension DataSyncClient { + /// Paginate over `[ListTaskExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTaskExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTaskExecutionsOutputResponse` public func listTaskExecutionsPaginated(input: ListTaskExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTaskExecutionsInput.nextToken, outputKey: \ListTaskExecutionsOutputResponse.nextToken, paginationFunction: self.listTaskExecutions(input:)) } @@ -121,24 +117,23 @@ extension ListTaskExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTaskExecutionsPaginated` -/// to access the nested member `[DataSyncClientTypes.TaskExecutionListEntry]` -/// - Returns: `[DataSyncClientTypes.TaskExecutionListEntry]` extension PaginatorSequence where Input == ListTaskExecutionsInput, Output == ListTaskExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTaskExecutionsPaginated` + /// to access the nested member `[DataSyncClientTypes.TaskExecutionListEntry]` + /// - Returns: `[DataSyncClientTypes.TaskExecutionListEntry]` public func taskExecutions() async throws -> [DataSyncClientTypes.TaskExecutionListEntry] { return try await self.asyncCompactMap { item in item.taskExecutions } } } - -/// Paginate over `[ListTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTasksOutputResponse` extension DataSyncClient { + /// Paginate over `[ListTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTasksOutputResponse` public func listTasksPaginated(input: ListTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTasksInput.nextToken, outputKey: \ListTasksOutputResponse.nextToken, paginationFunction: self.listTasks(input:)) } @@ -153,10 +148,10 @@ extension ListTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTasksPaginated` -/// to access the nested member `[DataSyncClientTypes.TaskListEntry]` -/// - Returns: `[DataSyncClientTypes.TaskListEntry]` extension PaginatorSequence where Input == ListTasksInput, Output == ListTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTasksPaginated` + /// to access the nested member `[DataSyncClientTypes.TaskListEntry]` + /// - Returns: `[DataSyncClientTypes.TaskListEntry]` public func tasks() async throws -> [DataSyncClientTypes.TaskListEntry] { return try await self.asyncCompactMap { item in item.tasks } } diff --git a/Sources/Services/AWSDatabaseMigrationService/Paginators.swift b/Sources/Services/AWSDatabaseMigrationService/Paginators.swift index 31df848c318..85928dd6946 100644 --- a/Sources/Services/AWSDatabaseMigrationService/Paginators.swift +++ b/Sources/Services/AWSDatabaseMigrationService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeApplicableIndividualAssessmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeApplicableIndividualAssessmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeApplicableIndividualAssessmentsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeApplicableIndividualAssessmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeApplicableIndividualAssessmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeApplicableIndividualAssessmentsOutputResponse` public func describeApplicableIndividualAssessmentsPaginated(input: DescribeApplicableIndividualAssessmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeApplicableIndividualAssessmentsInput.marker, outputKey: \DescribeApplicableIndividualAssessmentsOutputResponse.marker, paginationFunction: self.describeApplicableIndividualAssessments(input:)) } @@ -29,16 +28,15 @@ extension DescribeApplicableIndividualAssessmentsInput: ClientRuntime.PaginateTo targetEngineName: self.targetEngineName )} } - -/// Paginate over `[DescribeCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` public func describeCertificatesPaginated(input: DescribeCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCertificatesInput.marker, outputKey: \DescribeCertificatesOutputResponse.marker, paginationFunction: self.describeCertificates(input:)) } @@ -52,16 +50,15 @@ extension DescribeCertificatesInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectionsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConnectionsOutputResponse` public func describeConnectionsPaginated(input: DescribeConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConnectionsInput.marker, outputKey: \DescribeConnectionsOutputResponse.marker, paginationFunction: self.describeConnections(input:)) } @@ -75,16 +72,15 @@ extension DescribeConnectionsInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointsOutputResponse` public func describeEndpointsPaginated(input: DescribeEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointsInput.marker, outputKey: \DescribeEndpointsOutputResponse.marker, paginationFunction: self.describeEndpoints(input:)) } @@ -98,16 +94,15 @@ extension DescribeEndpointsInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeEndpointSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointSettingsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeEndpointSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointSettingsOutputResponse` public func describeEndpointSettingsPaginated(input: DescribeEndpointSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointSettingsInput.marker, outputKey: \DescribeEndpointSettingsOutputResponse.marker, paginationFunction: self.describeEndpointSettings(input:)) } @@ -121,16 +116,15 @@ extension DescribeEndpointSettingsInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeEndpointTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointTypesOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeEndpointTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointTypesOutputResponse` public func describeEndpointTypesPaginated(input: DescribeEndpointTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointTypesInput.marker, outputKey: \DescribeEndpointTypesOutputResponse.marker, paginationFunction: self.describeEndpointTypes(input:)) } @@ -144,16 +138,15 @@ extension DescribeEndpointTypesInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -173,16 +166,15 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` public func describeEventSubscriptionsPaginated(input: DescribeEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventSubscriptionsInput.marker, outputKey: \DescribeEventSubscriptionsOutputResponse.marker, paginationFunction: self.describeEventSubscriptions(input:)) } @@ -197,16 +189,15 @@ extension DescribeEventSubscriptionsInput: ClientRuntime.PaginateToken { subscriptionName: self.subscriptionName )} } - -/// Paginate over `[DescribeFleetAdvisorCollectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAdvisorCollectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorCollectorsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeFleetAdvisorCollectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAdvisorCollectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorCollectorsOutputResponse` public func describeFleetAdvisorCollectorsPaginated(input: DescribeFleetAdvisorCollectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAdvisorCollectorsInput.nextToken, outputKey: \DescribeFleetAdvisorCollectorsOutputResponse.nextToken, paginationFunction: self.describeFleetAdvisorCollectors(input:)) } @@ -220,16 +211,15 @@ extension DescribeFleetAdvisorCollectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFleetAdvisorDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAdvisorDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorDatabasesOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeFleetAdvisorDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAdvisorDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorDatabasesOutputResponse` public func describeFleetAdvisorDatabasesPaginated(input: DescribeFleetAdvisorDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAdvisorDatabasesInput.nextToken, outputKey: \DescribeFleetAdvisorDatabasesOutputResponse.nextToken, paginationFunction: self.describeFleetAdvisorDatabases(input:)) } @@ -243,16 +233,15 @@ extension DescribeFleetAdvisorDatabasesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFleetAdvisorLsaAnalysisOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAdvisorLsaAnalysisInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorLsaAnalysisOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeFleetAdvisorLsaAnalysisOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAdvisorLsaAnalysisInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorLsaAnalysisOutputResponse` public func describeFleetAdvisorLsaAnalysisPaginated(input: DescribeFleetAdvisorLsaAnalysisInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAdvisorLsaAnalysisInput.nextToken, outputKey: \DescribeFleetAdvisorLsaAnalysisOutputResponse.nextToken, paginationFunction: self.describeFleetAdvisorLsaAnalysis(input:)) } @@ -265,16 +254,15 @@ extension DescribeFleetAdvisorLsaAnalysisInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFleetAdvisorSchemaObjectSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAdvisorSchemaObjectSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorSchemaObjectSummaryOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeFleetAdvisorSchemaObjectSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAdvisorSchemaObjectSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorSchemaObjectSummaryOutputResponse` public func describeFleetAdvisorSchemaObjectSummaryPaginated(input: DescribeFleetAdvisorSchemaObjectSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAdvisorSchemaObjectSummaryInput.nextToken, outputKey: \DescribeFleetAdvisorSchemaObjectSummaryOutputResponse.nextToken, paginationFunction: self.describeFleetAdvisorSchemaObjectSummary(input:)) } @@ -288,16 +276,15 @@ extension DescribeFleetAdvisorSchemaObjectSummaryInput: ClientRuntime.PaginateTo nextToken: token )} } - -/// Paginate over `[DescribeFleetAdvisorSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAdvisorSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorSchemasOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeFleetAdvisorSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAdvisorSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAdvisorSchemasOutputResponse` public func describeFleetAdvisorSchemasPaginated(input: DescribeFleetAdvisorSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAdvisorSchemasInput.nextToken, outputKey: \DescribeFleetAdvisorSchemasOutputResponse.nextToken, paginationFunction: self.describeFleetAdvisorSchemas(input:)) } @@ -311,16 +298,15 @@ extension DescribeFleetAdvisorSchemasInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeOrderableReplicationInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrderableReplicationInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableReplicationInstancesOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeOrderableReplicationInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrderableReplicationInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableReplicationInstancesOutputResponse` public func describeOrderableReplicationInstancesPaginated(input: DescribeOrderableReplicationInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrderableReplicationInstancesInput.marker, outputKey: \DescribeOrderableReplicationInstancesOutputResponse.marker, paginationFunction: self.describeOrderableReplicationInstances(input:)) } @@ -333,16 +319,15 @@ extension DescribeOrderableReplicationInstancesInput: ClientRuntime.PaginateToke maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` public func describePendingMaintenanceActionsPaginated(input: DescribePendingMaintenanceActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePendingMaintenanceActionsInput.marker, outputKey: \DescribePendingMaintenanceActionsOutputResponse.marker, paginationFunction: self.describePendingMaintenanceActions(input:)) } @@ -357,16 +342,15 @@ extension DescribePendingMaintenanceActionsInput: ClientRuntime.PaginateToken { replicationInstanceArn: self.replicationInstanceArn )} } - -/// Paginate over `[DescribeReplicationInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationInstancesOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationInstancesOutputResponse` public func describeReplicationInstancesPaginated(input: DescribeReplicationInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationInstancesInput.marker, outputKey: \DescribeReplicationInstancesOutputResponse.marker, paginationFunction: self.describeReplicationInstances(input:)) } @@ -380,16 +364,15 @@ extension DescribeReplicationInstancesInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeReplicationInstanceTaskLogsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationInstanceTaskLogsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationInstanceTaskLogsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationInstanceTaskLogsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationInstanceTaskLogsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationInstanceTaskLogsOutputResponse` public func describeReplicationInstanceTaskLogsPaginated(input: DescribeReplicationInstanceTaskLogsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationInstanceTaskLogsInput.marker, outputKey: \DescribeReplicationInstanceTaskLogsOutputResponse.marker, paginationFunction: self.describeReplicationInstanceTaskLogs(input:)) } @@ -403,16 +386,15 @@ extension DescribeReplicationInstanceTaskLogsInput: ClientRuntime.PaginateToken replicationInstanceArn: self.replicationInstanceArn )} } - -/// Paginate over `[DescribeReplicationSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationSubnetGroupsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationSubnetGroupsOutputResponse` public func describeReplicationSubnetGroupsPaginated(input: DescribeReplicationSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationSubnetGroupsInput.marker, outputKey: \DescribeReplicationSubnetGroupsOutputResponse.marker, paginationFunction: self.describeReplicationSubnetGroups(input:)) } @@ -426,16 +408,15 @@ extension DescribeReplicationSubnetGroupsInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeReplicationTaskAssessmentResultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationTaskAssessmentResultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskAssessmentResultsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationTaskAssessmentResultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationTaskAssessmentResultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskAssessmentResultsOutputResponse` public func describeReplicationTaskAssessmentResultsPaginated(input: DescribeReplicationTaskAssessmentResultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationTaskAssessmentResultsInput.marker, outputKey: \DescribeReplicationTaskAssessmentResultsOutputResponse.marker, paginationFunction: self.describeReplicationTaskAssessmentResults(input:)) } @@ -449,16 +430,15 @@ extension DescribeReplicationTaskAssessmentResultsInput: ClientRuntime.PaginateT replicationTaskArn: self.replicationTaskArn )} } - -/// Paginate over `[DescribeReplicationTaskAssessmentRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationTaskAssessmentRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskAssessmentRunsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationTaskAssessmentRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationTaskAssessmentRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskAssessmentRunsOutputResponse` public func describeReplicationTaskAssessmentRunsPaginated(input: DescribeReplicationTaskAssessmentRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationTaskAssessmentRunsInput.marker, outputKey: \DescribeReplicationTaskAssessmentRunsOutputResponse.marker, paginationFunction: self.describeReplicationTaskAssessmentRuns(input:)) } @@ -472,16 +452,15 @@ extension DescribeReplicationTaskAssessmentRunsInput: ClientRuntime.PaginateToke maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeReplicationTaskIndividualAssessmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationTaskIndividualAssessmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskIndividualAssessmentsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationTaskIndividualAssessmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationTaskIndividualAssessmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTaskIndividualAssessmentsOutputResponse` public func describeReplicationTaskIndividualAssessmentsPaginated(input: DescribeReplicationTaskIndividualAssessmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationTaskIndividualAssessmentsInput.marker, outputKey: \DescribeReplicationTaskIndividualAssessmentsOutputResponse.marker, paginationFunction: self.describeReplicationTaskIndividualAssessments(input:)) } @@ -495,16 +474,15 @@ extension DescribeReplicationTaskIndividualAssessmentsInput: ClientRuntime.Pagin maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeReplicationTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTasksOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTasksOutputResponse` public func describeReplicationTasksPaginated(input: DescribeReplicationTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationTasksInput.marker, outputKey: \DescribeReplicationTasksOutputResponse.marker, paginationFunction: self.describeReplicationTasks(input:)) } @@ -519,16 +497,15 @@ extension DescribeReplicationTasksInput: ClientRuntime.PaginateToken { withoutSettings: self.withoutSettings )} } - -/// Paginate over `[DescribeSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSchemasOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSchemasOutputResponse` public func describeSchemasPaginated(input: DescribeSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSchemasInput.marker, outputKey: \DescribeSchemasOutputResponse.marker, paginationFunction: self.describeSchemas(input:)) } @@ -542,16 +519,15 @@ extension DescribeSchemasInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } - -/// Paginate over `[DescribeTableStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTableStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTableStatisticsOutputResponse` extension DatabaseMigrationClient { + /// Paginate over `[DescribeTableStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTableStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTableStatisticsOutputResponse` public func describeTableStatisticsPaginated(input: DescribeTableStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTableStatisticsInput.marker, outputKey: \DescribeTableStatisticsOutputResponse.marker, paginationFunction: self.describeTableStatistics(input:)) } diff --git a/Sources/Services/AWSDetective/Paginators.swift b/Sources/Services/AWSDetective/Paginators.swift index 4dc96484217..85a74d7a067 100644 --- a/Sources/Services/AWSDetective/Paginators.swift +++ b/Sources/Services/AWSDetective/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDatasourcePackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasourcePackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasourcePackagesOutputResponse` extension DetectiveClient { + /// Paginate over `[ListDatasourcePackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasourcePackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasourcePackagesOutputResponse` public func listDatasourcePackagesPaginated(input: ListDatasourcePackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasourcePackagesInput.nextToken, outputKey: \ListDatasourcePackagesOutputResponse.nextToken, paginationFunction: self.listDatasourcePackages(input:)) } @@ -25,16 +24,15 @@ extension ListDatasourcePackagesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListGraphsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGraphsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGraphsOutputResponse` extension DetectiveClient { + /// Paginate over `[ListGraphsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGraphsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGraphsOutputResponse` public func listGraphsPaginated(input: ListGraphsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGraphsInput.nextToken, outputKey: \ListGraphsOutputResponse.nextToken, paginationFunction: self.listGraphs(input:)) } @@ -47,16 +45,15 @@ extension ListGraphsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` extension DetectiveClient { + /// Paginate over `[ListInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` public func listInvitationsPaginated(input: ListInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvitationsInput.nextToken, outputKey: \ListInvitationsOutputResponse.nextToken, paginationFunction: self.listInvitations(input:)) } @@ -69,16 +66,15 @@ extension ListInvitationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension DetectiveClient { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -92,16 +88,15 @@ extension ListMembersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` extension DetectiveClient { + /// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` public func listOrganizationAdminAccountsPaginated(input: ListOrganizationAdminAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationAdminAccountsInput.nextToken, outputKey: \ListOrganizationAdminAccountsOutputResponse.nextToken, paginationFunction: self.listOrganizationAdminAccounts(input:)) } diff --git a/Sources/Services/AWSDevOpsGuru/Paginators.swift b/Sources/Services/AWSDevOpsGuru/Paginators.swift index e5d845cda2b..f125a26b29f 100644 --- a/Sources/Services/AWSDevOpsGuru/Paginators.swift +++ b/Sources/Services/AWSDevOpsGuru/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeOrganizationResourceCollectionHealthOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrganizationResourceCollectionHealthInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationResourceCollectionHealthOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[DescribeOrganizationResourceCollectionHealthOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrganizationResourceCollectionHealthInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrganizationResourceCollectionHealthOutputResponse` public func describeOrganizationResourceCollectionHealthPaginated(input: DescribeOrganizationResourceCollectionHealthInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrganizationResourceCollectionHealthInput.nextToken, outputKey: \DescribeOrganizationResourceCollectionHealthOutputResponse.nextToken, paginationFunction: self.describeOrganizationResourceCollectionHealth(input:)) } @@ -27,16 +26,15 @@ extension DescribeOrganizationResourceCollectionHealthInput: ClientRuntime.Pagin organizationalUnitIds: self.organizationalUnitIds )} } - -/// Paginate over `[DescribeResourceCollectionHealthOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeResourceCollectionHealthInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeResourceCollectionHealthOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[DescribeResourceCollectionHealthOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeResourceCollectionHealthInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeResourceCollectionHealthOutputResponse` public func describeResourceCollectionHealthPaginated(input: DescribeResourceCollectionHealthInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeResourceCollectionHealthInput.nextToken, outputKey: \DescribeResourceCollectionHealthOutputResponse.nextToken, paginationFunction: self.describeResourceCollectionHealth(input:)) } @@ -49,16 +47,15 @@ extension DescribeResourceCollectionHealthInput: ClientRuntime.PaginateToken { resourceCollectionType: self.resourceCollectionType )} } - -/// Paginate over `[GetCostEstimationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCostEstimationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCostEstimationOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[GetCostEstimationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCostEstimationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCostEstimationOutputResponse` public func getCostEstimationPaginated(input: GetCostEstimationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCostEstimationInput.nextToken, outputKey: \GetCostEstimationOutputResponse.nextToken, paginationFunction: self.getCostEstimation(input:)) } @@ -70,16 +67,15 @@ extension GetCostEstimationInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetResourceCollectionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceCollectionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceCollectionOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[GetResourceCollectionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceCollectionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceCollectionOutputResponse` public func getResourceCollectionPaginated(input: GetResourceCollectionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceCollectionInput.nextToken, outputKey: \GetResourceCollectionOutputResponse.nextToken, paginationFunction: self.getResourceCollection(input:)) } @@ -92,16 +88,15 @@ extension GetResourceCollectionInput: ClientRuntime.PaginateToken { resourceCollectionType: self.resourceCollectionType )} } - -/// Paginate over `[ListAnomaliesForInsightOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomaliesForInsightInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomaliesForInsightOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListAnomaliesForInsightOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomaliesForInsightInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomaliesForInsightOutputResponse` public func listAnomaliesForInsightPaginated(input: ListAnomaliesForInsightInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomaliesForInsightInput.nextToken, outputKey: \ListAnomaliesForInsightOutputResponse.nextToken, paginationFunction: self.listAnomaliesForInsight(input:)) } @@ -117,16 +112,15 @@ extension ListAnomaliesForInsightInput: ClientRuntime.PaginateToken { startTimeRange: self.startTimeRange )} } - -/// Paginate over `[ListAnomalousLogGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomalousLogGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomalousLogGroupsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListAnomalousLogGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomalousLogGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomalousLogGroupsOutputResponse` public func listAnomalousLogGroupsPaginated(input: ListAnomalousLogGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomalousLogGroupsInput.nextToken, outputKey: \ListAnomalousLogGroupsOutputResponse.nextToken, paginationFunction: self.listAnomalousLogGroups(input:)) } @@ -140,16 +134,15 @@ extension ListAnomalousLogGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventsOutputResponse` public func listEventsPaginated(input: ListEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventsInput.nextToken, outputKey: \ListEventsOutputResponse.nextToken, paginationFunction: self.listEvents(input:)) } @@ -165,24 +158,23 @@ extension ListEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEventsPaginated` -/// to access the nested member `[DevOpsGuruClientTypes.Event]` -/// - Returns: `[DevOpsGuruClientTypes.Event]` extension PaginatorSequence where Input == ListEventsInput, Output == ListEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEventsPaginated` + /// to access the nested member `[DevOpsGuruClientTypes.Event]` + /// - Returns: `[DevOpsGuruClientTypes.Event]` public func events() async throws -> [DevOpsGuruClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[ListInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInsightsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInsightsOutputResponse` public func listInsightsPaginated(input: ListInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInsightsInput.nextToken, outputKey: \ListInsightsOutputResponse.nextToken, paginationFunction: self.listInsights(input:)) } @@ -196,16 +188,15 @@ extension ListInsightsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[ListMonitoredResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitoredResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitoredResourcesOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListMonitoredResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitoredResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitoredResourcesOutputResponse` public func listMonitoredResourcesPaginated(input: ListMonitoredResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitoredResourcesInput.nextToken, outputKey: \ListMonitoredResourcesOutputResponse.nextToken, paginationFunction: self.listMonitoredResources(input:)) } @@ -219,16 +210,15 @@ extension ListMonitoredResourcesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListNotificationChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotificationChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotificationChannelsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListNotificationChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotificationChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotificationChannelsOutputResponse` public func listNotificationChannelsPaginated(input: ListNotificationChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotificationChannelsInput.nextToken, outputKey: \ListNotificationChannelsOutputResponse.nextToken, paginationFunction: self.listNotificationChannels(input:)) } @@ -241,24 +231,23 @@ extension ListNotificationChannelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNotificationChannelsPaginated` -/// to access the nested member `[DevOpsGuruClientTypes.NotificationChannel]` -/// - Returns: `[DevOpsGuruClientTypes.NotificationChannel]` extension PaginatorSequence where Input == ListNotificationChannelsInput, Output == ListNotificationChannelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNotificationChannelsPaginated` + /// to access the nested member `[DevOpsGuruClientTypes.NotificationChannel]` + /// - Returns: `[DevOpsGuruClientTypes.NotificationChannel]` public func channels() async throws -> [DevOpsGuruClientTypes.NotificationChannel] { return try await self.asyncCompactMap { item in item.channels } } } - -/// Paginate over `[ListOrganizationInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationInsightsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListOrganizationInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationInsightsOutputResponse` public func listOrganizationInsightsPaginated(input: ListOrganizationInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationInsightsInput.nextToken, outputKey: \ListOrganizationInsightsOutputResponse.nextToken, paginationFunction: self.listOrganizationInsights(input:)) } @@ -274,16 +263,15 @@ extension ListOrganizationInsightsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[ListRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[ListRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` public func listRecommendationsPaginated(input: ListRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendationsInput.nextToken, outputKey: \ListRecommendationsOutputResponse.nextToken, paginationFunction: self.listRecommendations(input:)) } @@ -299,24 +287,23 @@ extension ListRecommendationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecommendationsPaginated` -/// to access the nested member `[DevOpsGuruClientTypes.Recommendation]` -/// - Returns: `[DevOpsGuruClientTypes.Recommendation]` extension PaginatorSequence where Input == ListRecommendationsInput, Output == ListRecommendationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecommendationsPaginated` + /// to access the nested member `[DevOpsGuruClientTypes.Recommendation]` + /// - Returns: `[DevOpsGuruClientTypes.Recommendation]` public func recommendations() async throws -> [DevOpsGuruClientTypes.Recommendation] { return try await self.asyncCompactMap { item in item.recommendations } } } - -/// Paginate over `[SearchInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchInsightsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[SearchInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchInsightsOutputResponse` public func searchInsightsPaginated(input: SearchInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchInsightsInput.nextToken, outputKey: \SearchInsightsOutputResponse.nextToken, paginationFunction: self.searchInsights(input:)) } @@ -332,16 +319,15 @@ extension SearchInsightsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[SearchOrganizationInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchOrganizationInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchOrganizationInsightsOutputResponse` extension DevOpsGuruClient { + /// Paginate over `[SearchOrganizationInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchOrganizationInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchOrganizationInsightsOutputResponse` public func searchOrganizationInsightsPaginated(input: SearchOrganizationInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchOrganizationInsightsInput.nextToken, outputKey: \SearchOrganizationInsightsOutputResponse.nextToken, paginationFunction: self.searchOrganizationInsights(input:)) } diff --git a/Sources/Services/AWSDeviceFarm/Paginators.swift b/Sources/Services/AWSDeviceFarm/Paginators.swift index 2be070c5a0f..594dee1bece 100644 --- a/Sources/Services/AWSDeviceFarm/Paginators.swift +++ b/Sources/Services/AWSDeviceFarm/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetOfferingStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOfferingStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOfferingStatusOutputResponse` extension DeviceFarmClient { + /// Paginate over `[GetOfferingStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOfferingStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOfferingStatusOutputResponse` public func getOfferingStatusPaginated(input: GetOfferingStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOfferingStatusInput.nextToken, outputKey: \GetOfferingStatusOutputResponse.nextToken, paginationFunction: self.getOfferingStatus(input:)) } @@ -23,16 +22,15 @@ extension GetOfferingStatusInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListArtifactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListArtifactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListArtifactsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListArtifactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListArtifactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListArtifactsOutputResponse` public func listArtifactsPaginated(input: ListArtifactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListArtifactsInput.nextToken, outputKey: \ListArtifactsOutputResponse.nextToken, paginationFunction: self.listArtifacts(input:)) } @@ -47,24 +45,23 @@ extension ListArtifactsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listArtifactsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Artifact]` -/// - Returns: `[DeviceFarmClientTypes.Artifact]` extension PaginatorSequence where Input == ListArtifactsInput, Output == ListArtifactsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listArtifactsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Artifact]` + /// - Returns: `[DeviceFarmClientTypes.Artifact]` public func artifacts() async throws -> [DeviceFarmClientTypes.Artifact] { return try await self.asyncCompactMap { item in item.artifacts } } } - -/// Paginate over `[ListDevicePoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicePoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicePoolsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListDevicePoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicePoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicePoolsOutputResponse` public func listDevicePoolsPaginated(input: ListDevicePoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicePoolsInput.nextToken, outputKey: \ListDevicePoolsOutputResponse.nextToken, paginationFunction: self.listDevicePools(input:)) } @@ -79,24 +76,23 @@ extension ListDevicePoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDevicePoolsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.DevicePool]` -/// - Returns: `[DeviceFarmClientTypes.DevicePool]` extension PaginatorSequence where Input == ListDevicePoolsInput, Output == ListDevicePoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDevicePoolsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.DevicePool]` + /// - Returns: `[DeviceFarmClientTypes.DevicePool]` public func devicePools() async throws -> [DeviceFarmClientTypes.DevicePool] { return try await self.asyncCompactMap { item in item.devicePools } } } - -/// Paginate over `[ListDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` public func listDevicesPaginated(input: ListDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicesInput.nextToken, outputKey: \ListDevicesOutputResponse.nextToken, paginationFunction: self.listDevices(input:)) } @@ -111,24 +107,23 @@ extension ListDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDevicesPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Device]` -/// - Returns: `[DeviceFarmClientTypes.Device]` extension PaginatorSequence where Input == ListDevicesInput, Output == ListDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDevicesPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Device]` + /// - Returns: `[DeviceFarmClientTypes.Device]` public func devices() async throws -> [DeviceFarmClientTypes.Device] { return try await self.asyncCompactMap { item in item.devices } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -142,24 +137,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Job]` -/// - Returns: `[DeviceFarmClientTypes.Job]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Job]` + /// - Returns: `[DeviceFarmClientTypes.Job]` public func jobs() async throws -> [DeviceFarmClientTypes.Job] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` public func listOfferingsPaginated(input: ListOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOfferingsInput.nextToken, outputKey: \ListOfferingsOutputResponse.nextToken, paginationFunction: self.listOfferings(input:)) } @@ -172,24 +166,23 @@ extension ListOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Offering]` -/// - Returns: `[DeviceFarmClientTypes.Offering]` extension PaginatorSequence where Input == ListOfferingsInput, Output == ListOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Offering]` + /// - Returns: `[DeviceFarmClientTypes.Offering]` public func offerings() async throws -> [DeviceFarmClientTypes.Offering] { return try await self.asyncCompactMap { item in item.offerings } } } - -/// Paginate over `[ListOfferingTransactionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOfferingTransactionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOfferingTransactionsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListOfferingTransactionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOfferingTransactionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOfferingTransactionsOutputResponse` public func listOfferingTransactionsPaginated(input: ListOfferingTransactionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOfferingTransactionsInput.nextToken, outputKey: \ListOfferingTransactionsOutputResponse.nextToken, paginationFunction: self.listOfferingTransactions(input:)) } @@ -202,24 +195,23 @@ extension ListOfferingTransactionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOfferingTransactionsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.OfferingTransaction]` -/// - Returns: `[DeviceFarmClientTypes.OfferingTransaction]` extension PaginatorSequence where Input == ListOfferingTransactionsInput, Output == ListOfferingTransactionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOfferingTransactionsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.OfferingTransaction]` + /// - Returns: `[DeviceFarmClientTypes.OfferingTransaction]` public func offeringTransactions() async throws -> [DeviceFarmClientTypes.OfferingTransaction] { return try await self.asyncCompactMap { item in item.offeringTransactions } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -233,24 +225,23 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Project]` -/// - Returns: `[DeviceFarmClientTypes.Project]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Project]` + /// - Returns: `[DeviceFarmClientTypes.Project]` public func projects() async throws -> [DeviceFarmClientTypes.Project] { return try await self.asyncCompactMap { item in item.projects } } } - -/// Paginate over `[ListRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRunsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRunsOutputResponse` public func listRunsPaginated(input: ListRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRunsInput.nextToken, outputKey: \ListRunsOutputResponse.nextToken, paginationFunction: self.listRuns(input:)) } @@ -264,24 +255,23 @@ extension ListRunsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRunsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Run]` -/// - Returns: `[DeviceFarmClientTypes.Run]` extension PaginatorSequence where Input == ListRunsInput, Output == ListRunsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRunsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Run]` + /// - Returns: `[DeviceFarmClientTypes.Run]` public func runs() async throws -> [DeviceFarmClientTypes.Run] { return try await self.asyncCompactMap { item in item.runs } } } - -/// Paginate over `[ListSamplesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSamplesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSamplesOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListSamplesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSamplesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSamplesOutputResponse` public func listSamplesPaginated(input: ListSamplesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSamplesInput.nextToken, outputKey: \ListSamplesOutputResponse.nextToken, paginationFunction: self.listSamples(input:)) } @@ -295,24 +285,23 @@ extension ListSamplesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSamplesPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Sample]` -/// - Returns: `[DeviceFarmClientTypes.Sample]` extension PaginatorSequence where Input == ListSamplesInput, Output == ListSamplesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSamplesPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Sample]` + /// - Returns: `[DeviceFarmClientTypes.Sample]` public func samples() async throws -> [DeviceFarmClientTypes.Sample] { return try await self.asyncCompactMap { item in item.samples } } } - -/// Paginate over `[ListSuitesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSuitesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSuitesOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListSuitesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSuitesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSuitesOutputResponse` public func listSuitesPaginated(input: ListSuitesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSuitesInput.nextToken, outputKey: \ListSuitesOutputResponse.nextToken, paginationFunction: self.listSuites(input:)) } @@ -326,24 +315,23 @@ extension ListSuitesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSuitesPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Suite]` -/// - Returns: `[DeviceFarmClientTypes.Suite]` extension PaginatorSequence where Input == ListSuitesInput, Output == ListSuitesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSuitesPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Suite]` + /// - Returns: `[DeviceFarmClientTypes.Suite]` public func suites() async throws -> [DeviceFarmClientTypes.Suite] { return try await self.asyncCompactMap { item in item.suites } } } - -/// Paginate over `[ListTestGridProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestGridProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestGridProjectsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListTestGridProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestGridProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestGridProjectsOutputResponse` public func listTestGridProjectsPaginated(input: ListTestGridProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestGridProjectsInput.nextToken, outputKey: \ListTestGridProjectsOutputResponse.nextToken, paginationFunction: self.listTestGridProjects(input:)) } @@ -356,16 +344,15 @@ extension ListTestGridProjectsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTestGridSessionActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestGridSessionActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionActionsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListTestGridSessionActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestGridSessionActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionActionsOutputResponse` public func listTestGridSessionActionsPaginated(input: ListTestGridSessionActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestGridSessionActionsInput.nextToken, outputKey: \ListTestGridSessionActionsOutputResponse.nextToken, paginationFunction: self.listTestGridSessionActions(input:)) } @@ -379,16 +366,15 @@ extension ListTestGridSessionActionsInput: ClientRuntime.PaginateToken { sessionArn: self.sessionArn )} } - -/// Paginate over `[ListTestGridSessionArtifactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestGridSessionArtifactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionArtifactsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListTestGridSessionArtifactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestGridSessionArtifactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionArtifactsOutputResponse` public func listTestGridSessionArtifactsPaginated(input: ListTestGridSessionArtifactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestGridSessionArtifactsInput.nextToken, outputKey: \ListTestGridSessionArtifactsOutputResponse.nextToken, paginationFunction: self.listTestGridSessionArtifacts(input:)) } @@ -403,16 +389,15 @@ extension ListTestGridSessionArtifactsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[ListTestGridSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestGridSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListTestGridSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestGridSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestGridSessionsOutputResponse` public func listTestGridSessionsPaginated(input: ListTestGridSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestGridSessionsInput.nextToken, outputKey: \ListTestGridSessionsOutputResponse.nextToken, paginationFunction: self.listTestGridSessions(input:)) } @@ -431,16 +416,15 @@ extension ListTestGridSessionsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListTestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListTestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestsOutputResponse` public func listTestsPaginated(input: ListTestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestsInput.nextToken, outputKey: \ListTestsOutputResponse.nextToken, paginationFunction: self.listTests(input:)) } @@ -454,24 +438,23 @@ extension ListTestsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTestsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Test]` -/// - Returns: `[DeviceFarmClientTypes.Test]` extension PaginatorSequence where Input == ListTestsInput, Output == ListTestsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTestsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Test]` + /// - Returns: `[DeviceFarmClientTypes.Test]` public func tests() async throws -> [DeviceFarmClientTypes.Test] { return try await self.asyncCompactMap { item in item.tests } } } - -/// Paginate over `[ListUniqueProblemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUniqueProblemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUniqueProblemsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListUniqueProblemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUniqueProblemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUniqueProblemsOutputResponse` public func listUniqueProblemsPaginated(input: ListUniqueProblemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUniqueProblemsInput.nextToken, outputKey: \ListUniqueProblemsOutputResponse.nextToken, paginationFunction: self.listUniqueProblems(input:)) } @@ -485,24 +468,23 @@ extension ListUniqueProblemsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUniqueProblemsPaginated` -/// to access the nested member `[(String, [DeviceFarmClientTypes.UniqueProblem])]` -/// - Returns: `[(String, [DeviceFarmClientTypes.UniqueProblem])]` extension PaginatorSequence where Input == ListUniqueProblemsInput, Output == ListUniqueProblemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUniqueProblemsPaginated` + /// to access the nested member `[(String, [DeviceFarmClientTypes.UniqueProblem])]` + /// - Returns: `[(String, [DeviceFarmClientTypes.UniqueProblem])]` public func uniqueProblems() async throws -> [(String, [DeviceFarmClientTypes.UniqueProblem])] { return try await self.asyncCompactMap { item in item.uniqueProblems?.map { ($0, $1) } } } } - -/// Paginate over `[ListUploadsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUploadsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUploadsOutputResponse` extension DeviceFarmClient { + /// Paginate over `[ListUploadsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUploadsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUploadsOutputResponse` public func listUploadsPaginated(input: ListUploadsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUploadsInput.nextToken, outputKey: \ListUploadsOutputResponse.nextToken, paginationFunction: self.listUploads(input:)) } @@ -517,10 +499,10 @@ extension ListUploadsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUploadsPaginated` -/// to access the nested member `[DeviceFarmClientTypes.Upload]` -/// - Returns: `[DeviceFarmClientTypes.Upload]` extension PaginatorSequence where Input == ListUploadsInput, Output == ListUploadsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUploadsPaginated` + /// to access the nested member `[DeviceFarmClientTypes.Upload]` + /// - Returns: `[DeviceFarmClientTypes.Upload]` public func uploads() async throws -> [DeviceFarmClientTypes.Upload] { return try await self.asyncCompactMap { item in item.uploads } } diff --git a/Sources/Services/AWSDirectoryService/Paginators.swift b/Sources/Services/AWSDirectoryService/Paginators.swift index d4f2a77a9eb..d427865d95d 100644 --- a/Sources/Services/AWSDirectoryService/Paginators.swift +++ b/Sources/Services/AWSDirectoryService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeClientAuthenticationSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientAuthenticationSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientAuthenticationSettingsOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeClientAuthenticationSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientAuthenticationSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientAuthenticationSettingsOutputResponse` public func describeClientAuthenticationSettingsPaginated(input: DescribeClientAuthenticationSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientAuthenticationSettingsInput.nextToken, outputKey: \DescribeClientAuthenticationSettingsOutputResponse.nextToken, paginationFunction: self.describeClientAuthenticationSettings(input:)) } @@ -27,24 +26,23 @@ extension DescribeClientAuthenticationSettingsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientAuthenticationSettingsPaginated` -/// to access the nested member `[DirectoryClientTypes.ClientAuthenticationSettingInfo]` -/// - Returns: `[DirectoryClientTypes.ClientAuthenticationSettingInfo]` extension PaginatorSequence where Input == DescribeClientAuthenticationSettingsInput, Output == DescribeClientAuthenticationSettingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientAuthenticationSettingsPaginated` + /// to access the nested member `[DirectoryClientTypes.ClientAuthenticationSettingInfo]` + /// - Returns: `[DirectoryClientTypes.ClientAuthenticationSettingInfo]` public func clientAuthenticationSettingsInfo() async throws -> [DirectoryClientTypes.ClientAuthenticationSettingInfo] { return try await self.asyncCompactMap { item in item.clientAuthenticationSettingsInfo } } } - -/// Paginate over `[DescribeDirectoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDirectoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDirectoriesOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeDirectoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDirectoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDirectoriesOutputResponse` public func describeDirectoriesPaginated(input: DescribeDirectoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDirectoriesInput.nextToken, outputKey: \DescribeDirectoriesOutputResponse.nextToken, paginationFunction: self.describeDirectories(input:)) } @@ -59,24 +57,23 @@ extension DescribeDirectoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDirectoriesPaginated` -/// to access the nested member `[DirectoryClientTypes.DirectoryDescription]` -/// - Returns: `[DirectoryClientTypes.DirectoryDescription]` extension PaginatorSequence where Input == DescribeDirectoriesInput, Output == DescribeDirectoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDirectoriesPaginated` + /// to access the nested member `[DirectoryClientTypes.DirectoryDescription]` + /// - Returns: `[DirectoryClientTypes.DirectoryDescription]` public func directoryDescriptions() async throws -> [DirectoryClientTypes.DirectoryDescription] { return try await self.asyncCompactMap { item in item.directoryDescriptions } } } - -/// Paginate over `[DescribeDomainControllersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDomainControllersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainControllersOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeDomainControllersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDomainControllersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainControllersOutputResponse` public func describeDomainControllersPaginated(input: DescribeDomainControllersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDomainControllersInput.nextToken, outputKey: \DescribeDomainControllersOutputResponse.nextToken, paginationFunction: self.describeDomainControllers(input:)) } @@ -91,16 +88,15 @@ extension DescribeDomainControllersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeLDAPSSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLDAPSSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLDAPSSettingsOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeLDAPSSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLDAPSSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLDAPSSettingsOutputResponse` public func describeLDAPSSettingsPaginated(input: DescribeLDAPSSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLDAPSSettingsInput.nextToken, outputKey: \DescribeLDAPSSettingsOutputResponse.nextToken, paginationFunction: self.describeLDAPSSettings(input:)) } @@ -116,24 +112,23 @@ extension DescribeLDAPSSettingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLDAPSSettingsPaginated` -/// to access the nested member `[DirectoryClientTypes.LDAPSSettingInfo]` -/// - Returns: `[DirectoryClientTypes.LDAPSSettingInfo]` extension PaginatorSequence where Input == DescribeLDAPSSettingsInput, Output == DescribeLDAPSSettingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLDAPSSettingsPaginated` + /// to access the nested member `[DirectoryClientTypes.LDAPSSettingInfo]` + /// - Returns: `[DirectoryClientTypes.LDAPSSettingInfo]` public func ldapsSettingsInfo() async throws -> [DirectoryClientTypes.LDAPSSettingInfo] { return try await self.asyncCompactMap { item in item.ldapsSettingsInfo } } } - -/// Paginate over `[DescribeRegionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRegionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRegionsOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeRegionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRegionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRegionsOutputResponse` public func describeRegionsPaginated(input: DescribeRegionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRegionsInput.nextToken, outputKey: \DescribeRegionsOutputResponse.nextToken, paginationFunction: self.describeRegions(input:)) } @@ -148,24 +143,23 @@ extension DescribeRegionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRegionsPaginated` -/// to access the nested member `[DirectoryClientTypes.RegionDescription]` -/// - Returns: `[DirectoryClientTypes.RegionDescription]` extension PaginatorSequence where Input == DescribeRegionsInput, Output == DescribeRegionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRegionsPaginated` + /// to access the nested member `[DirectoryClientTypes.RegionDescription]` + /// - Returns: `[DirectoryClientTypes.RegionDescription]` public func regionsDescription() async throws -> [DirectoryClientTypes.RegionDescription] { return try await self.asyncCompactMap { item in item.regionsDescription } } } - -/// Paginate over `[DescribeSharedDirectoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSharedDirectoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSharedDirectoriesOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeSharedDirectoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSharedDirectoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSharedDirectoriesOutputResponse` public func describeSharedDirectoriesPaginated(input: DescribeSharedDirectoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSharedDirectoriesInput.nextToken, outputKey: \DescribeSharedDirectoriesOutputResponse.nextToken, paginationFunction: self.describeSharedDirectories(input:)) } @@ -181,24 +175,23 @@ extension DescribeSharedDirectoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSharedDirectoriesPaginated` -/// to access the nested member `[DirectoryClientTypes.SharedDirectory]` -/// - Returns: `[DirectoryClientTypes.SharedDirectory]` extension PaginatorSequence where Input == DescribeSharedDirectoriesInput, Output == DescribeSharedDirectoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSharedDirectoriesPaginated` + /// to access the nested member `[DirectoryClientTypes.SharedDirectory]` + /// - Returns: `[DirectoryClientTypes.SharedDirectory]` public func sharedDirectories() async throws -> [DirectoryClientTypes.SharedDirectory] { return try await self.asyncCompactMap { item in item.sharedDirectories } } } - -/// Paginate over `[DescribeSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` public func describeSnapshotsPaginated(input: DescribeSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotsInput.nextToken, outputKey: \DescribeSnapshotsOutputResponse.nextToken, paginationFunction: self.describeSnapshots(input:)) } @@ -214,24 +207,23 @@ extension DescribeSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` -/// to access the nested member `[DirectoryClientTypes.Snapshot]` -/// - Returns: `[DirectoryClientTypes.Snapshot]` extension PaginatorSequence where Input == DescribeSnapshotsInput, Output == DescribeSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` + /// to access the nested member `[DirectoryClientTypes.Snapshot]` + /// - Returns: `[DirectoryClientTypes.Snapshot]` public func snapshots() async throws -> [DirectoryClientTypes.Snapshot] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[DescribeTrustsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTrustsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTrustsOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeTrustsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTrustsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTrustsOutputResponse` public func describeTrustsPaginated(input: DescribeTrustsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTrustsInput.nextToken, outputKey: \DescribeTrustsOutputResponse.nextToken, paginationFunction: self.describeTrusts(input:)) } @@ -247,24 +239,23 @@ extension DescribeTrustsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTrustsPaginated` -/// to access the nested member `[DirectoryClientTypes.Trust]` -/// - Returns: `[DirectoryClientTypes.Trust]` extension PaginatorSequence where Input == DescribeTrustsInput, Output == DescribeTrustsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTrustsPaginated` + /// to access the nested member `[DirectoryClientTypes.Trust]` + /// - Returns: `[DirectoryClientTypes.Trust]` public func trusts() async throws -> [DirectoryClientTypes.Trust] { return try await self.asyncCompactMap { item in item.trusts } } } - -/// Paginate over `[DescribeUpdateDirectoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUpdateDirectoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUpdateDirectoryOutputResponse` extension DirectoryClient { + /// Paginate over `[DescribeUpdateDirectoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUpdateDirectoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUpdateDirectoryOutputResponse` public func describeUpdateDirectoryPaginated(input: DescribeUpdateDirectoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUpdateDirectoryInput.nextToken, outputKey: \DescribeUpdateDirectoryOutputResponse.nextToken, paginationFunction: self.describeUpdateDirectory(input:)) } @@ -280,24 +271,23 @@ extension DescribeUpdateDirectoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUpdateDirectoryPaginated` -/// to access the nested member `[DirectoryClientTypes.UpdateInfoEntry]` -/// - Returns: `[DirectoryClientTypes.UpdateInfoEntry]` extension PaginatorSequence where Input == DescribeUpdateDirectoryInput, Output == DescribeUpdateDirectoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUpdateDirectoryPaginated` + /// to access the nested member `[DirectoryClientTypes.UpdateInfoEntry]` + /// - Returns: `[DirectoryClientTypes.UpdateInfoEntry]` public func updateActivities() async throws -> [DirectoryClientTypes.UpdateInfoEntry] { return try await self.asyncCompactMap { item in item.updateActivities } } } - -/// Paginate over `[ListCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` extension DirectoryClient { + /// Paginate over `[ListCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` public func listCertificatesPaginated(input: ListCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificatesInput.nextToken, outputKey: \ListCertificatesOutputResponse.nextToken, paginationFunction: self.listCertificates(input:)) } @@ -312,24 +302,23 @@ extension ListCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` -/// to access the nested member `[DirectoryClientTypes.CertificateInfo]` -/// - Returns: `[DirectoryClientTypes.CertificateInfo]` extension PaginatorSequence where Input == ListCertificatesInput, Output == ListCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` + /// to access the nested member `[DirectoryClientTypes.CertificateInfo]` + /// - Returns: `[DirectoryClientTypes.CertificateInfo]` public func certificatesInfo() async throws -> [DirectoryClientTypes.CertificateInfo] { return try await self.asyncCompactMap { item in item.certificatesInfo } } } - -/// Paginate over `[ListIpRoutesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIpRoutesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIpRoutesOutputResponse` extension DirectoryClient { + /// Paginate over `[ListIpRoutesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIpRoutesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIpRoutesOutputResponse` public func listIpRoutesPaginated(input: ListIpRoutesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIpRoutesInput.nextToken, outputKey: \ListIpRoutesOutputResponse.nextToken, paginationFunction: self.listIpRoutes(input:)) } @@ -344,24 +333,23 @@ extension ListIpRoutesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIpRoutesPaginated` -/// to access the nested member `[DirectoryClientTypes.IpRouteInfo]` -/// - Returns: `[DirectoryClientTypes.IpRouteInfo]` extension PaginatorSequence where Input == ListIpRoutesInput, Output == ListIpRoutesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIpRoutesPaginated` + /// to access the nested member `[DirectoryClientTypes.IpRouteInfo]` + /// - Returns: `[DirectoryClientTypes.IpRouteInfo]` public func ipRoutesInfo() async throws -> [DirectoryClientTypes.IpRouteInfo] { return try await self.asyncCompactMap { item in item.ipRoutesInfo } } } - -/// Paginate over `[ListLogSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLogSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLogSubscriptionsOutputResponse` extension DirectoryClient { + /// Paginate over `[ListLogSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLogSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLogSubscriptionsOutputResponse` public func listLogSubscriptionsPaginated(input: ListLogSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLogSubscriptionsInput.nextToken, outputKey: \ListLogSubscriptionsOutputResponse.nextToken, paginationFunction: self.listLogSubscriptions(input:)) } @@ -376,24 +364,23 @@ extension ListLogSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLogSubscriptionsPaginated` -/// to access the nested member `[DirectoryClientTypes.LogSubscription]` -/// - Returns: `[DirectoryClientTypes.LogSubscription]` extension PaginatorSequence where Input == ListLogSubscriptionsInput, Output == ListLogSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLogSubscriptionsPaginated` + /// to access the nested member `[DirectoryClientTypes.LogSubscription]` + /// - Returns: `[DirectoryClientTypes.LogSubscription]` public func logSubscriptions() async throws -> [DirectoryClientTypes.LogSubscription] { return try await self.asyncCompactMap { item in item.logSubscriptions } } } - -/// Paginate over `[ListSchemaExtensionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemaExtensionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemaExtensionsOutputResponse` extension DirectoryClient { + /// Paginate over `[ListSchemaExtensionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemaExtensionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemaExtensionsOutputResponse` public func listSchemaExtensionsPaginated(input: ListSchemaExtensionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemaExtensionsInput.nextToken, outputKey: \ListSchemaExtensionsOutputResponse.nextToken, paginationFunction: self.listSchemaExtensions(input:)) } @@ -408,24 +395,23 @@ extension ListSchemaExtensionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemaExtensionsPaginated` -/// to access the nested member `[DirectoryClientTypes.SchemaExtensionInfo]` -/// - Returns: `[DirectoryClientTypes.SchemaExtensionInfo]` extension PaginatorSequence where Input == ListSchemaExtensionsInput, Output == ListSchemaExtensionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemaExtensionsPaginated` + /// to access the nested member `[DirectoryClientTypes.SchemaExtensionInfo]` + /// - Returns: `[DirectoryClientTypes.SchemaExtensionInfo]` public func schemaExtensionsInfo() async throws -> [DirectoryClientTypes.SchemaExtensionInfo] { return try await self.asyncCompactMap { item in item.schemaExtensionsInfo } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension DirectoryClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -440,10 +426,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[DirectoryClientTypes.Tag]` -/// - Returns: `[DirectoryClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[DirectoryClientTypes.Tag]` + /// - Returns: `[DirectoryClientTypes.Tag]` public func tags() async throws -> [DirectoryClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSDocDB/Paginators.swift b/Sources/Services/AWSDocDB/Paginators.swift index 99e18149b11..bcc0080ad1e 100644 --- a/Sources/Services/AWSDocDB/Paginators.swift +++ b/Sources/Services/AWSDocDB/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` public func describeCertificatesPaginated(input: DescribeCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCertificatesInput.marker, outputKey: \DescribeCertificatesOutputResponse.marker, paginationFunction: self.describeCertificates(input:)) } @@ -27,24 +26,23 @@ extension DescribeCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCertificatesPaginated` -/// to access the nested member `[DocDBClientTypes.Certificate]` -/// - Returns: `[DocDBClientTypes.Certificate]` extension PaginatorSequence where Input == DescribeCertificatesInput, Output == DescribeCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCertificatesPaginated` + /// to access the nested member `[DocDBClientTypes.Certificate]` + /// - Returns: `[DocDBClientTypes.Certificate]` public func certificates() async throws -> [DocDBClientTypes.Certificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` public func describeDBClusterParameterGroupsPaginated(input: DescribeDBClusterParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParameterGroupsInput.marker, outputKey: \DescribeDBClusterParameterGroupsOutputResponse.marker, paginationFunction: self.describeDBClusterParameterGroups(input:)) } @@ -60,24 +58,23 @@ extension DescribeDBClusterParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` -/// to access the nested member `[DocDBClientTypes.DBClusterParameterGroup]` -/// - Returns: `[DocDBClientTypes.DBClusterParameterGroup]` extension PaginatorSequence where Input == DescribeDBClusterParameterGroupsInput, Output == DescribeDBClusterParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` + /// to access the nested member `[DocDBClientTypes.DBClusterParameterGroup]` + /// - Returns: `[DocDBClientTypes.DBClusterParameterGroup]` public func dbClusterParameterGroups() async throws -> [DocDBClientTypes.DBClusterParameterGroup] { return try await self.asyncCompactMap { item in item.dbClusterParameterGroups } } } - -/// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` public func describeDBClusterParametersPaginated(input: DescribeDBClusterParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParametersInput.marker, outputKey: \DescribeDBClusterParametersOutputResponse.marker, paginationFunction: self.describeDBClusterParameters(input:)) } @@ -94,24 +91,23 @@ extension DescribeDBClusterParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` -/// to access the nested member `[DocDBClientTypes.Parameter]` -/// - Returns: `[DocDBClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDBClusterParametersInput, Output == DescribeDBClusterParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` + /// to access the nested member `[DocDBClientTypes.Parameter]` + /// - Returns: `[DocDBClientTypes.Parameter]` public func parameters() async throws -> [DocDBClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeDBClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` public func describeDBClustersPaginated(input: DescribeDBClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClustersInput.marker, outputKey: \DescribeDBClustersOutputResponse.marker, paginationFunction: self.describeDBClusters(input:)) } @@ -127,24 +123,23 @@ extension DescribeDBClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` -/// to access the nested member `[DocDBClientTypes.DBCluster]` -/// - Returns: `[DocDBClientTypes.DBCluster]` extension PaginatorSequence where Input == DescribeDBClustersInput, Output == DescribeDBClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` + /// to access the nested member `[DocDBClientTypes.DBCluster]` + /// - Returns: `[DocDBClientTypes.DBCluster]` public func dbClusters() async throws -> [DocDBClientTypes.DBCluster] { return try await self.asyncCompactMap { item in item.dbClusters } } } - -/// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` public func describeDBClusterSnapshotsPaginated(input: DescribeDBClusterSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterSnapshotsInput.marker, outputKey: \DescribeDBClusterSnapshotsOutputResponse.marker, paginationFunction: self.describeDBClusterSnapshots(input:)) } @@ -164,24 +159,23 @@ extension DescribeDBClusterSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` -/// to access the nested member `[DocDBClientTypes.DBClusterSnapshot]` -/// - Returns: `[DocDBClientTypes.DBClusterSnapshot]` extension PaginatorSequence where Input == DescribeDBClusterSnapshotsInput, Output == DescribeDBClusterSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` + /// to access the nested member `[DocDBClientTypes.DBClusterSnapshot]` + /// - Returns: `[DocDBClientTypes.DBClusterSnapshot]` public func dbClusterSnapshots() async throws -> [DocDBClientTypes.DBClusterSnapshot] { return try await self.asyncCompactMap { item in item.dbClusterSnapshots } } } - -/// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` public func describeDBEngineVersionsPaginated(input: DescribeDBEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBEngineVersionsInput.marker, outputKey: \DescribeDBEngineVersionsOutputResponse.marker, paginationFunction: self.describeDBEngineVersions(input:)) } @@ -202,24 +196,23 @@ extension DescribeDBEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` -/// to access the nested member `[DocDBClientTypes.DBEngineVersion]` -/// - Returns: `[DocDBClientTypes.DBEngineVersion]` extension PaginatorSequence where Input == DescribeDBEngineVersionsInput, Output == DescribeDBEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` + /// to access the nested member `[DocDBClientTypes.DBEngineVersion]` + /// - Returns: `[DocDBClientTypes.DBEngineVersion]` public func dbEngineVersions() async throws -> [DocDBClientTypes.DBEngineVersion] { return try await self.asyncCompactMap { item in item.dbEngineVersions } } } - -/// Paginate over `[DescribeDBInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` public func describeDBInstancesPaginated(input: DescribeDBInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBInstancesInput.marker, outputKey: \DescribeDBInstancesOutputResponse.marker, paginationFunction: self.describeDBInstances(input:)) } @@ -235,24 +228,23 @@ extension DescribeDBInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` -/// to access the nested member `[DocDBClientTypes.DBInstance]` -/// - Returns: `[DocDBClientTypes.DBInstance]` extension PaginatorSequence where Input == DescribeDBInstancesInput, Output == DescribeDBInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` + /// to access the nested member `[DocDBClientTypes.DBInstance]` + /// - Returns: `[DocDBClientTypes.DBInstance]` public func dbInstances() async throws -> [DocDBClientTypes.DBInstance] { return try await self.asyncCompactMap { item in item.dbInstances } } } - -/// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` public func describeDBSubnetGroupsPaginated(input: DescribeDBSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBSubnetGroupsInput.marker, outputKey: \DescribeDBSubnetGroupsOutputResponse.marker, paginationFunction: self.describeDBSubnetGroups(input:)) } @@ -268,24 +260,23 @@ extension DescribeDBSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` -/// to access the nested member `[DocDBClientTypes.DBSubnetGroup]` -/// - Returns: `[DocDBClientTypes.DBSubnetGroup]` extension PaginatorSequence where Input == DescribeDBSubnetGroupsInput, Output == DescribeDBSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` + /// to access the nested member `[DocDBClientTypes.DBSubnetGroup]` + /// - Returns: `[DocDBClientTypes.DBSubnetGroup]` public func dbSubnetGroups() async throws -> [DocDBClientTypes.DBSubnetGroup] { return try await self.asyncCompactMap { item in item.dbSubnetGroups } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -306,24 +297,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[DocDBClientTypes.Event]` -/// - Returns: `[DocDBClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[DocDBClientTypes.Event]` + /// - Returns: `[DocDBClientTypes.Event]` public func events() async throws -> [DocDBClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` public func describeEventSubscriptionsPaginated(input: DescribeEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventSubscriptionsInput.marker, outputKey: \DescribeEventSubscriptionsOutputResponse.marker, paginationFunction: self.describeEventSubscriptions(input:)) } @@ -339,24 +329,23 @@ extension DescribeEventSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` -/// to access the nested member `[DocDBClientTypes.EventSubscription]` -/// - Returns: `[DocDBClientTypes.EventSubscription]` extension PaginatorSequence where Input == DescribeEventSubscriptionsInput, Output == DescribeEventSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` + /// to access the nested member `[DocDBClientTypes.EventSubscription]` + /// - Returns: `[DocDBClientTypes.EventSubscription]` public func eventSubscriptionsList() async throws -> [DocDBClientTypes.EventSubscription] { return try await self.asyncCompactMap { item in item.eventSubscriptionsList } } } - -/// Paginate over `[DescribeGlobalClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGlobalClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeGlobalClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGlobalClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` public func describeGlobalClustersPaginated(input: DescribeGlobalClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGlobalClustersInput.marker, outputKey: \DescribeGlobalClustersOutputResponse.marker, paginationFunction: self.describeGlobalClusters(input:)) } @@ -372,24 +361,23 @@ extension DescribeGlobalClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` -/// to access the nested member `[DocDBClientTypes.GlobalCluster]` -/// - Returns: `[DocDBClientTypes.GlobalCluster]` extension PaginatorSequence where Input == DescribeGlobalClustersInput, Output == DescribeGlobalClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` + /// to access the nested member `[DocDBClientTypes.GlobalCluster]` + /// - Returns: `[DocDBClientTypes.GlobalCluster]` public func globalClusters() async throws -> [DocDBClientTypes.GlobalCluster] { return try await self.asyncCompactMap { item in item.globalClusters } } } - -/// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` public func describeOrderableDBInstanceOptionsPaginated(input: DescribeOrderableDBInstanceOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrderableDBInstanceOptionsInput.marker, outputKey: \DescribeOrderableDBInstanceOptionsOutputResponse.marker, paginationFunction: self.describeOrderableDBInstanceOptions(input:)) } @@ -409,24 +397,23 @@ extension DescribeOrderableDBInstanceOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` -/// to access the nested member `[DocDBClientTypes.OrderableDBInstanceOption]` -/// - Returns: `[DocDBClientTypes.OrderableDBInstanceOption]` extension PaginatorSequence where Input == DescribeOrderableDBInstanceOptionsInput, Output == DescribeOrderableDBInstanceOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` + /// to access the nested member `[DocDBClientTypes.OrderableDBInstanceOption]` + /// - Returns: `[DocDBClientTypes.OrderableDBInstanceOption]` public func orderableDBInstanceOptions() async throws -> [DocDBClientTypes.OrderableDBInstanceOption] { return try await self.asyncCompactMap { item in item.orderableDBInstanceOptions } } } - -/// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` extension DocDBClient { + /// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` public func describePendingMaintenanceActionsPaginated(input: DescribePendingMaintenanceActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePendingMaintenanceActionsInput.marker, outputKey: \DescribePendingMaintenanceActionsOutputResponse.marker, paginationFunction: self.describePendingMaintenanceActions(input:)) } @@ -442,10 +429,10 @@ extension DescribePendingMaintenanceActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` -/// to access the nested member `[DocDBClientTypes.ResourcePendingMaintenanceActions]` -/// - Returns: `[DocDBClientTypes.ResourcePendingMaintenanceActions]` extension PaginatorSequence where Input == DescribePendingMaintenanceActionsInput, Output == DescribePendingMaintenanceActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` + /// to access the nested member `[DocDBClientTypes.ResourcePendingMaintenanceActions]` + /// - Returns: `[DocDBClientTypes.ResourcePendingMaintenanceActions]` public func pendingMaintenanceActions() async throws -> [DocDBClientTypes.ResourcePendingMaintenanceActions] { return try await self.asyncCompactMap { item in item.pendingMaintenanceActions } } diff --git a/Sources/Services/AWSDocDBElastic/Paginators.swift b/Sources/Services/AWSDocDBElastic/Paginators.swift index cece1bde9a1..feef2982c41 100644 --- a/Sources/Services/AWSDocDBElastic/Paginators.swift +++ b/Sources/Services/AWSDocDBElastic/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension DocDBElasticClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -25,24 +24,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[DocDBElasticClientTypes.ClusterInList]` -/// - Returns: `[DocDBElasticClientTypes.ClusterInList]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[DocDBElasticClientTypes.ClusterInList]` + /// - Returns: `[DocDBElasticClientTypes.ClusterInList]` public func clusters() async throws -> [DocDBElasticClientTypes.ClusterInList] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[ListClusterSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClusterSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClusterSnapshotsOutputResponse` extension DocDBElasticClient { + /// Paginate over `[ListClusterSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClusterSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClusterSnapshotsOutputResponse` public func listClusterSnapshotsPaginated(input: ListClusterSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClusterSnapshotsInput.nextToken, outputKey: \ListClusterSnapshotsOutputResponse.nextToken, paginationFunction: self.listClusterSnapshots(input:)) } @@ -57,10 +55,10 @@ extension ListClusterSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClusterSnapshotsPaginated` -/// to access the nested member `[DocDBElasticClientTypes.ClusterSnapshotInList]` -/// - Returns: `[DocDBElasticClientTypes.ClusterSnapshotInList]` extension PaginatorSequence where Input == ListClusterSnapshotsInput, Output == ListClusterSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClusterSnapshotsPaginated` + /// to access the nested member `[DocDBElasticClientTypes.ClusterSnapshotInList]` + /// - Returns: `[DocDBElasticClientTypes.ClusterSnapshotInList]` public func snapshots() async throws -> [DocDBElasticClientTypes.ClusterSnapshotInList] { return try await self.asyncCompactMap { item in item.snapshots } } diff --git a/Sources/Services/AWSDrs/Paginators.swift b/Sources/Services/AWSDrs/Paginators.swift index c8961d826db..a8ac1efc9f5 100644 --- a/Sources/Services/AWSDrs/Paginators.swift +++ b/Sources/Services/AWSDrs/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListExtensibleSourceServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExtensibleSourceServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExtensibleSourceServersOutputResponse` extension DrsClient { + /// Paginate over `[ListExtensibleSourceServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExtensibleSourceServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExtensibleSourceServersOutputResponse` public func listExtensibleSourceServersPaginated(input: ListExtensibleSourceServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExtensibleSourceServersInput.nextToken, outputKey: \ListExtensibleSourceServersOutputResponse.nextToken, paginationFunction: self.listExtensibleSourceServers(input:)) } @@ -26,24 +25,23 @@ extension ListExtensibleSourceServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExtensibleSourceServersPaginated` -/// to access the nested member `[DrsClientTypes.StagingSourceServer]` -/// - Returns: `[DrsClientTypes.StagingSourceServer]` extension PaginatorSequence where Input == ListExtensibleSourceServersInput, Output == ListExtensibleSourceServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExtensibleSourceServersPaginated` + /// to access the nested member `[DrsClientTypes.StagingSourceServer]` + /// - Returns: `[DrsClientTypes.StagingSourceServer]` public func items() async throws -> [DrsClientTypes.StagingSourceServer] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListStagingAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStagingAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStagingAccountsOutputResponse` extension DrsClient { + /// Paginate over `[ListStagingAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStagingAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStagingAccountsOutputResponse` public func listStagingAccountsPaginated(input: ListStagingAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStagingAccountsInput.nextToken, outputKey: \ListStagingAccountsOutputResponse.nextToken, paginationFunction: self.listStagingAccounts(input:)) } @@ -57,10 +55,10 @@ extension ListStagingAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStagingAccountsPaginated` -/// to access the nested member `[DrsClientTypes.Account]` -/// - Returns: `[DrsClientTypes.Account]` extension PaginatorSequence where Input == ListStagingAccountsInput, Output == ListStagingAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStagingAccountsPaginated` + /// to access the nested member `[DrsClientTypes.Account]` + /// - Returns: `[DrsClientTypes.Account]` public func accounts() async throws -> [DrsClientTypes.Account] { return try await self.asyncCompactMap { item in item.accounts } } diff --git a/Sources/Services/AWSDynamoDB/EndpointResolver.swift b/Sources/Services/AWSDynamoDB/EndpointResolver.swift index ac8e81fae1c..fdf4c335f5e 100644 --- a/Sources/Services/AWSDynamoDB/EndpointResolver.swift +++ b/Sources/Services/AWSDynamoDB/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"local\"]}],\"endpoint\":{\"url\":\"http://localhost:8000\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"dynamodb\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"local\"]}],\"endpoint\":{\"url\":\"http://localhost:8000\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"dynamodb\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSDynamoDB/Paginators.swift b/Sources/Services/AWSDynamoDB/Paginators.swift index ce7662f74d4..63247b191f2 100644 --- a/Sources/Services/AWSDynamoDB/Paginators.swift +++ b/Sources/Services/AWSDynamoDB/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListContributorInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContributorInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContributorInsightsOutputResponse` extension DynamoDBClient { + /// Paginate over `[ListContributorInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContributorInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContributorInsightsOutputResponse` public func listContributorInsightsPaginated(input: ListContributorInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContributorInsightsInput.nextToken, outputKey: \ListContributorInsightsOutputResponse.nextToken, paginationFunction: self.listContributorInsights(input:)) } @@ -25,16 +24,15 @@ extension ListContributorInsightsInput: ClientRuntime.PaginateToken { tableName: self.tableName )} } - -/// Paginate over `[ListExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` extension DynamoDBClient { + /// Paginate over `[ListExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` public func listExportsPaginated(input: ListExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExportsInput.nextToken, outputKey: \ListExportsOutputResponse.nextToken, paginationFunction: self.listExports(input:)) } @@ -48,16 +46,15 @@ extension ListExportsInput: ClientRuntime.PaginateToken { tableArn: self.tableArn )} } - -/// Paginate over `[ListImportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` extension DynamoDBClient { + /// Paginate over `[ListImportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` public func listImportsPaginated(input: ListImportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportsInput.nextToken, outputKey: \ListImportsOutputResponse.nextToken, paginationFunction: self.listImports(input:)) } @@ -71,16 +68,15 @@ extension ListImportsInput: ClientRuntime.PaginateToken { tableArn: self.tableArn )} } - -/// Paginate over `[ListTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` extension DynamoDBClient { + /// Paginate over `[ListTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` public func listTablesPaginated(input: ListTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTablesInput.exclusiveStartTableName, outputKey: \ListTablesOutputResponse.lastEvaluatedTableName, paginationFunction: self.listTables(input:)) } @@ -94,24 +90,23 @@ extension ListTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListTablesInput, Output == ListTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func tableNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.tableNames } } } - -/// Paginate over `[QueryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[QueryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `QueryOutputResponse` extension DynamoDBClient { + /// Paginate over `[QueryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[QueryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `QueryOutputResponse` public func queryPaginated(input: QueryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \QueryInput.exclusiveStartKey, outputKey: \QueryOutputResponse.lastEvaluatedKey, paginationFunction: self.query(input:)) } @@ -140,24 +135,23 @@ extension QueryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `queryPaginated` -/// to access the nested member `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` -/// - Returns: `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` extension PaginatorSequence where Input == QueryInput, Output == QueryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `queryPaginated` + /// to access the nested member `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` + /// - Returns: `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` public func items() async throws -> [[Swift.String:DynamoDBClientTypes.AttributeValue]] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ScanOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ScanInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ScanOutputResponse` extension DynamoDBClient { + /// Paginate over `[ScanOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ScanInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ScanOutputResponse` public func scanPaginated(input: ScanInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ScanInput.exclusiveStartKey, outputKey: \ScanOutputResponse.lastEvaluatedKey, paginationFunction: self.scan(input:)) } @@ -185,10 +179,10 @@ extension ScanInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `scanPaginated` -/// to access the nested member `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` -/// - Returns: `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` extension PaginatorSequence where Input == ScanInput, Output == ScanOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `scanPaginated` + /// to access the nested member `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` + /// - Returns: `[[Swift.String:DynamoDBClientTypes.AttributeValue]]` public func items() async throws -> [[Swift.String:DynamoDBClientTypes.AttributeValue]] { return try await self.asyncCompactMap { item in item.items } } diff --git a/Sources/Services/AWSDynamoDBStreams/EndpointResolver.swift b/Sources/Services/AWSDynamoDBStreams/EndpointResolver.swift index 456774cdf1e..0963146dc5a 100644 --- a/Sources/Services/AWSDynamoDBStreams/EndpointResolver.swift +++ b/Sources/Services/AWSDynamoDBStreams/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"local\"]}],\"endpoint\":{\"url\":\"http://localhost:8000\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"dynamodb\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"local\"]}],\"endpoint\":{\"url\":\"http://localhost:8000\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"dynamodb\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSEBS/Paginators.swift b/Sources/Services/AWSEBS/Paginators.swift index 8d1ad1722e5..a07962a4307 100644 --- a/Sources/Services/AWSEBS/Paginators.swift +++ b/Sources/Services/AWSEBS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChangedBlocksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChangedBlocksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChangedBlocksOutputResponse` extension EBSClient { + /// Paginate over `[ListChangedBlocksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChangedBlocksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChangedBlocksOutputResponse` public func listChangedBlocksPaginated(input: ListChangedBlocksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChangedBlocksInput.nextToken, outputKey: \ListChangedBlocksOutputResponse.nextToken, paginationFunction: self.listChangedBlocks(input:)) } @@ -27,16 +26,15 @@ extension ListChangedBlocksInput: ClientRuntime.PaginateToken { startingBlockIndex: self.startingBlockIndex )} } - -/// Paginate over `[ListSnapshotBlocksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSnapshotBlocksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotBlocksOutputResponse` extension EBSClient { + /// Paginate over `[ListSnapshotBlocksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSnapshotBlocksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotBlocksOutputResponse` public func listSnapshotBlocksPaginated(input: ListSnapshotBlocksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSnapshotBlocksInput.nextToken, outputKey: \ListSnapshotBlocksOutputResponse.nextToken, paginationFunction: self.listSnapshotBlocks(input:)) } diff --git a/Sources/Services/AWSEC2/EC2Client.swift b/Sources/Services/AWSEC2/EC2Client.swift index 2fb1d0f7ac2..f2582e4f88e 100644 --- a/Sources/Services/AWSEC2/EC2Client.swift +++ b/Sources/Services/AWSEC2/EC2Client.swift @@ -391,7 +391,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service. + /// Accepts connection requests to your VPC endpoint service. public func acceptVpcEndpointConnections(input: AcceptVpcEndpointConnectionsInput) async throws -> AcceptVpcEndpointConnectionsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -4193,7 +4193,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Creates a subnet in a specified VPC. You must specify an IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The allowed block size is between a /16 netmask (65,536 IP addresses) and /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR block of an existing subnet in the VPC. If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length. Amazon Web Services reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see [Your VPC and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the Amazon Virtual Private Cloud User Guide. + /// Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block. A subnet CIDR block must not overlap the CIDR block of an existing subnet in the VPC. After you create a subnet, you can't change its CIDR block. The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses) and a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for your use. If you've associated an IPv6 CIDR block with your VPC, you can associate an IPv6 CIDR block with a subnet when you create it. The allowed block size for an IPv6 subnet is a /64 netmask. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information, see [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the Amazon Virtual Private Cloud User Guide. public func createSubnet(input: CreateSubnetInput) async throws -> CreateSubnetOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -5139,7 +5139,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). For more information about how large to make your VPC, see [Your VPC and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the Amazon Virtual Private Cloud User Guide. You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). By default, each instance you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see [DHCP options sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see [Dedicated Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) in the Amazon Elastic Compute Cloud User Guide. + /// Creates a VPC with the specified CIDR blocks. For more information, see [VPC CIDR blocks](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html#vpc-cidr-blocks) in the Amazon Virtual Private Cloud User Guide. You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). By default, each instance that you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see [DHCP option sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see [Dedicated Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) in the Amazon Elastic Compute Cloud User Guide. public func createVpc(input: CreateVpcInput) async throws -> CreateVpcOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -5253,7 +5253,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts, IAM users, and IAM roles) can connect. Before you create an endpoint service, you must create one of the following for your service: + /// Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts, users, and IAM roles) can connect. Before you create an endpoint service, you must create one of the following for your service: /// /// * A [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/). Service consumers connect to your service using an interface endpoint. /// @@ -7959,7 +7959,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Deletes one or more VPC endpoint connection notifications. + /// Deletes the specified VPC endpoint connection notifications. public func deleteVpcEndpointConnectionNotifications(input: DeleteVpcEndpointConnectionNotificationsInput) async throws -> DeleteVpcEndpointConnectionNotificationsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -7997,7 +7997,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Deletes one or more VPC endpoint service configurations in your account. Before you delete the endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service. + /// Deletes the specified VPC endpoint service configurations. Before you can delete an endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service. public func deleteVpcEndpointServiceConfigurations(input: DeleteVpcEndpointServiceConfigurationsInput) async throws -> DeleteVpcEndpointServiceConfigurationsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -8035,22 +8035,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Deletes one or more specified VPC endpoints. You can delete any of the following types of VPC endpoints. - /// - /// * Gateway endpoint, - /// - /// * Gateway Load Balancer endpoint, - /// - /// * Interface endpoint - /// - /// - /// The following rules apply when you delete a VPC endpoint: - /// - /// * When you delete a gateway endpoint, we delete the endpoint routes in the route tables that are associated with the endpoint. - /// - /// * When you delete a Gateway Load Balancer endpoint, we delete the endpoint network interfaces. You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted. - /// - /// * When you delete an interface endpoint, we delete the endpoint network interfaces. + /// Deletes the specified VPC endpoints. When you delete a gateway endpoint, we delete the endpoint routes in the route tables for the endpoint. When you delete a Gateway Load Balancer endpoint, we delete its endpoint network interfaces. You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted. When you delete an interface endpoint, we delete its endpoint network interfaces. public func deleteVpcEndpoints(input: DeleteVpcEndpointsInput) async throws -> DeleteVpcEndpointsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -13742,7 +13727,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Describes one or more of your VPC endpoints. + /// Describes your VPC endpoints. public func describeVpcEndpoints(input: DescribeVpcEndpointsInput) async throws -> DescribeVpcEndpointsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -19826,7 +19811,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, IAM roles, and Amazon Web Services accounts) to connect to your endpoint service. If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved. + /// Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (Amazon Web Services accounts, users, and IAM roles) to connect to your endpoint service. If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved. public func modifyVpcEndpointServicePermissions(input: ModifyVpcEndpointServicePermissionsInput) async throws -> ModifyVpcEndpointServicePermissionsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -20775,7 +20760,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Rejects one or more VPC endpoint connection requests to your VPC endpoint service. + /// Rejects VPC endpoint connection requests to your VPC endpoint service. public func rejectVpcEndpointConnections(input: RejectVpcEndpointConnectionsInput) async throws -> RejectVpcEndpointConnectionsOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSEC2/EC2ClientProtocol.swift b/Sources/Services/AWSEC2/EC2ClientProtocol.swift index 89b8ffbdab4..50c6451e4ab 100644 --- a/Sources/Services/AWSEC2/EC2ClientProtocol.swift +++ b/Sources/Services/AWSEC2/EC2ClientProtocol.swift @@ -8,13 +8,13 @@ import ClientRuntime /// /// and reliable storage volumes that can be attached to any running instance and used like a hard drive. To learn more, see the following resources: /// -/// * Amazon EC2: [AmazonEC2 product page](http://aws.amazon.com/ec2), [Amazon EC2 documentation](http://aws.amazon.com/documentation/ec2) +/// * Amazon EC2: [Amazon EC2 product page](http://aws.amazon.com/ec2), [Amazon EC2 documentation](https://docs.aws.amazon.com/ec2/index.html) /// -/// * Amazon EBS: [Amazon EBS product page](http://aws.amazon.com/ebs), [Amazon EBS documentation](http://aws.amazon.com/documentation/ebs) +/// * Amazon EBS: [Amazon EBS product page](http://aws.amazon.com/ebs), [Amazon EBS documentation](https://docs.aws.amazon.com/ebs/index.html) /// -/// * Amazon VPC: [Amazon VPC product page](http://aws.amazon.com/vpc), [Amazon VPC documentation](http://aws.amazon.com/documentation/vpc) +/// * Amazon VPC: [Amazon VPC product page](http://aws.amazon.com/vpc), [Amazon VPC documentation](https://docs.aws.amazon.com/vpc/index.html) /// -/// * Amazon Web Services VPN: [Amazon Web Services VPN product page](http://aws.amazon.com/vpn), [Amazon Web Services VPN documentation](http://aws.amazon.com/documentation/vpn) +/// * VPN: [VPN product page](http://aws.amazon.com/vpn), [VPN documentation](https://docs.aws.amazon.com/vpn/index.html) public protocol EC2ClientProtocol { /// Accepts an Elastic IP address transfer. For more information, see [Accept a transferred Elastic IP address](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#using-instance-addressing-eips-transfer-accept) in the Amazon Virtual Private Cloud User Guide. func acceptAddressTransfer(input: AcceptAddressTransferInput) async throws -> AcceptAddressTransferOutputResponse @@ -26,7 +26,7 @@ public protocol EC2ClientProtocol { func acceptTransitGatewayPeeringAttachment(input: AcceptTransitGatewayPeeringAttachmentInput) async throws -> AcceptTransitGatewayPeeringAttachmentOutputResponse /// Accepts a request to attach a VPC to a transit gateway. The VPC attachment must be in the pendingAcceptance state. Use [DescribeTransitGatewayVpcAttachments] to view your pending VPC attachment requests. Use [RejectTransitGatewayVpcAttachment] to reject a VPC attachment request. func acceptTransitGatewayVpcAttachment(input: AcceptTransitGatewayVpcAttachmentInput) async throws -> AcceptTransitGatewayVpcAttachmentOutputResponse - /// Accepts one or more interface VPC endpoint connection requests to your VPC endpoint service. + /// Accepts connection requests to your VPC endpoint service. func acceptVpcEndpointConnections(input: AcceptVpcEndpointConnectionsInput) async throws -> AcceptVpcEndpointConnectionsOutputResponse /// Accept a VPC peering connection request. To accept a request, the VPC peering connection must be in the pending-acceptance state, and you must be the owner of the peer VPC. Use [DescribeVpcPeeringConnections] to view your outstanding VPC peering connection requests. For an inter-Region VPC peering connection request, you must accept the VPC peering connection in the Region of the accepter VPC. func acceptVpcPeeringConnection(input: AcceptVpcPeeringConnectionInput) async throws -> AcceptVpcPeeringConnectionOutputResponse @@ -264,7 +264,7 @@ public protocol EC2ClientProtocol { func createSpotDatafeedSubscription(input: CreateSpotDatafeedSubscriptionInput) async throws -> CreateSpotDatafeedSubscriptionOutputResponse /// Stores an AMI as a single object in an Amazon S3 bucket. To use this API, you must have the required permissions. For more information, see [Permissions for storing and restoring AMIs using Amazon S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions) in the Amazon EC2 User Guide. For more information, see [Store and restore an AMI using Amazon S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html) in the Amazon EC2 User Guide. func createStoreImageTask(input: CreateStoreImageTaskInput) async throws -> CreateStoreImageTaskOutputResponse - /// Creates a subnet in a specified VPC. You must specify an IPv4 CIDR block for the subnet. After you create a subnet, you can't change its CIDR block. The allowed block size is between a /16 netmask (65,536 IP addresses) and /28 netmask (16 IP addresses). The CIDR block must not overlap with the CIDR block of an existing subnet in the VPC. If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length. Amazon Web Services reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information about subnets, see [Your VPC and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the Amazon Virtual Private Cloud User Guide. + /// Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block. A subnet CIDR block must not overlap the CIDR block of an existing subnet in the VPC. After you create a subnet, you can't change its CIDR block. The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses) and a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for your use. If you've associated an IPv6 CIDR block with your VPC, you can associate an IPv6 CIDR block with a subnet when you create it. The allowed block size for an IPv6 subnet is a /64 netmask. If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle. When you stop an instance in a subnet, it retains its private IPv4 address. It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available. For more information, see [Subnets](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the Amazon Virtual Private Cloud User Guide. func createSubnet(input: CreateSubnetInput) async throws -> CreateSubnetOutputResponse /// Creates a subnet CIDR reservation. For information about subnet CIDR reservations, see [Subnet CIDR reservations](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html) in the Amazon Virtual Private Cloud User Guide. func createSubnetCidrReservation(input: CreateSubnetCidrReservationInput) async throws -> CreateSubnetCidrReservationOutputResponse @@ -310,13 +310,13 @@ public protocol EC2ClientProtocol { func createVerifiedAccessTrustProvider(input: CreateVerifiedAccessTrustProviderInput) async throws -> CreateVerifiedAccessTrustProviderOutputResponse /// Creates an EBS volume that can be attached to an instance in the same Availability Zone. You can create a new empty volume or restore a volume from an EBS snapshot. Any Amazon Web Services Marketplace product codes from the snapshot are propagated to the volume. You can create encrypted volumes. Encrypted volumes must be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see [Amazon EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) in the Amazon Elastic Compute Cloud User Guide. You can tag your volumes during creation. For more information, see [Tag your Amazon EC2 resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) in the Amazon Elastic Compute Cloud User Guide. For more information, see [Create an Amazon EBS volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html) in the Amazon Elastic Compute Cloud User Guide. func createVolume(input: CreateVolumeInput) async throws -> CreateVolumeOutputResponse - /// Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). For more information about how large to make your VPC, see [Your VPC and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the Amazon Virtual Private Cloud User Guide. You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). By default, each instance you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see [DHCP options sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see [Dedicated Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) in the Amazon Elastic Compute Cloud User Guide. + /// Creates a VPC with the specified CIDR blocks. For more information, see [VPC CIDR blocks](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html#vpc-cidr-blocks) in the Amazon Virtual Private Cloud User Guide. You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses ([BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)). By default, each instance that you launch in the VPC has the default DHCP options, which include only a default DNS server that we provide (AmazonProvidedDNS). For more information, see [DHCP option sets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) in the Amazon Virtual Private Cloud User Guide. You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see [Dedicated Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html) in the Amazon Elastic Compute Cloud User Guide. func createVpc(input: CreateVpcInput) async throws -> CreateVpcOutputResponse /// Creates a VPC endpoint for a specified service. An endpoint enables you to create a private connection between your VPC and the service. The service may be provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or another Amazon Web Services account. For more information, see the [Amazon Web Services PrivateLink Guide](https://docs.aws.amazon.com/vpc/latest/privatelink/). func createVpcEndpoint(input: CreateVpcEndpointInput) async throws -> CreateVpcEndpointOutputResponse /// Creates a connection notification for a specified VPC endpoint or VPC endpoint service. A connection notification notifies you of specific endpoint events. You must create an SNS topic to receive notifications. For more information, see [Create a Topic](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) in the Amazon Simple Notification Service Developer Guide. You can create a connection notification for interface endpoints only. func createVpcEndpointConnectionNotification(input: CreateVpcEndpointConnectionNotificationInput) async throws -> CreateVpcEndpointConnectionNotificationOutputResponse - /// Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts, IAM users, and IAM roles) can connect. Before you create an endpoint service, you must create one of the following for your service: + /// Creates a VPC endpoint service to which service consumers (Amazon Web Services accounts, users, and IAM roles) can connect. Before you create an endpoint service, you must create one of the following for your service: /// /// * A [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/). Service consumers connect to your service using an interface endpoint. /// @@ -470,26 +470,11 @@ public protocol EC2ClientProtocol { func deleteVolume(input: DeleteVolumeInput) async throws -> DeleteVolumeOutputResponse /// Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on. func deleteVpc(input: DeleteVpcInput) async throws -> DeleteVpcOutputResponse - /// Deletes one or more VPC endpoint connection notifications. + /// Deletes the specified VPC endpoint connection notifications. func deleteVpcEndpointConnectionNotifications(input: DeleteVpcEndpointConnectionNotificationsInput) async throws -> DeleteVpcEndpointConnectionNotificationsOutputResponse - /// Deletes one or more specified VPC endpoints. You can delete any of the following types of VPC endpoints. - /// - /// * Gateway endpoint, - /// - /// * Gateway Load Balancer endpoint, - /// - /// * Interface endpoint - /// - /// - /// The following rules apply when you delete a VPC endpoint: - /// - /// * When you delete a gateway endpoint, we delete the endpoint routes in the route tables that are associated with the endpoint. - /// - /// * When you delete a Gateway Load Balancer endpoint, we delete the endpoint network interfaces. You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted. - /// - /// * When you delete an interface endpoint, we delete the endpoint network interfaces. + /// Deletes the specified VPC endpoints. When you delete a gateway endpoint, we delete the endpoint routes in the route tables for the endpoint. When you delete a Gateway Load Balancer endpoint, we delete its endpoint network interfaces. You can only delete Gateway Load Balancer endpoints when the routes that are associated with the endpoint are deleted. When you delete an interface endpoint, we delete its endpoint network interfaces. func deleteVpcEndpoints(input: DeleteVpcEndpointsInput) async throws -> DeleteVpcEndpointsOutputResponse - /// Deletes one or more VPC endpoint service configurations in your account. Before you delete the endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service. + /// Deletes the specified VPC endpoint service configurations. Before you can delete an endpoint service configuration, you must reject any Available or PendingAcceptance interface endpoint connections that are attached to the service. func deleteVpcEndpointServiceConfigurations(input: DeleteVpcEndpointServiceConfigurationsInput) async throws -> DeleteVpcEndpointServiceConfigurationsOutputResponse /// Deletes a VPC peering connection. Either the owner of the requester VPC or the owner of the accepter VPC can delete the VPC peering connection if it's in the active state. The owner of the requester VPC can delete a VPC peering connection in the pending-acceptance state. You cannot delete a VPC peering connection that's in the failed state. func deleteVpcPeeringConnection(input: DeleteVpcPeeringConnectionInput) async throws -> DeleteVpcPeeringConnectionOutputResponse @@ -811,7 +796,7 @@ public protocol EC2ClientProtocol { func describeVpcEndpointConnectionNotifications(input: DescribeVpcEndpointConnectionNotificationsInput) async throws -> DescribeVpcEndpointConnectionNotificationsOutputResponse /// Describes the VPC endpoint connections to your VPC endpoint services, including any endpoints that are pending your acceptance. func describeVpcEndpointConnections(input: DescribeVpcEndpointConnectionsInput) async throws -> DescribeVpcEndpointConnectionsOutputResponse - /// Describes one or more of your VPC endpoints. + /// Describes your VPC endpoints. func describeVpcEndpoints(input: DescribeVpcEndpointsInput) async throws -> DescribeVpcEndpointsOutputResponse /// Describes the VPC endpoint service configurations in your account (your services). func describeVpcEndpointServiceConfigurations(input: DescribeVpcEndpointServiceConfigurationsInput) async throws -> DescribeVpcEndpointServiceConfigurationsOutputResponse @@ -1169,7 +1154,7 @@ public protocol EC2ClientProtocol { func modifyVpcEndpointServiceConfiguration(input: ModifyVpcEndpointServiceConfigurationInput) async throws -> ModifyVpcEndpointServiceConfigurationOutputResponse /// Modifies the payer responsibility for your VPC endpoint service. func modifyVpcEndpointServicePayerResponsibility(input: ModifyVpcEndpointServicePayerResponsibilityInput) async throws -> ModifyVpcEndpointServicePayerResponsibilityOutputResponse - /// Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (IAM users, IAM roles, and Amazon Web Services accounts) to connect to your endpoint service. If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved. + /// Modifies the permissions for your VPC endpoint service. You can add or remove permissions for service consumers (Amazon Web Services accounts, users, and IAM roles) to connect to your endpoint service. If you grant permissions to all principals, the service is public. Any users who know the name of a public service can send a request to attach an endpoint. If the service does not require manual approval, attachments are automatically approved. func modifyVpcEndpointServicePermissions(input: ModifyVpcEndpointServicePermissionsInput) async throws -> ModifyVpcEndpointServicePermissionsOutputResponse /// We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see [Migrate from EC2-Classic to a VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) in the Amazon Elastic Compute Cloud User Guide. Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following: /// @@ -1246,7 +1231,7 @@ public protocol EC2ClientProtocol { func rejectTransitGatewayPeeringAttachment(input: RejectTransitGatewayPeeringAttachmentInput) async throws -> RejectTransitGatewayPeeringAttachmentOutputResponse /// Rejects a request to attach a VPC to a transit gateway. The VPC attachment must be in the pendingAcceptance state. Use [DescribeTransitGatewayVpcAttachments] to view your pending VPC attachment requests. Use [AcceptTransitGatewayVpcAttachment] to accept a VPC attachment request. func rejectTransitGatewayVpcAttachment(input: RejectTransitGatewayVpcAttachmentInput) async throws -> RejectTransitGatewayVpcAttachmentOutputResponse - /// Rejects one or more VPC endpoint connection requests to your VPC endpoint service. + /// Rejects VPC endpoint connection requests to your VPC endpoint service. func rejectVpcEndpointConnections(input: RejectVpcEndpointConnectionsInput) async throws -> RejectVpcEndpointConnectionsOutputResponse /// Rejects a VPC peering connection request. The VPC peering connection must be in the pending-acceptance state. Use the [DescribeVpcPeeringConnections] request to view your outstanding VPC peering connection requests. To delete an active VPC peering connection, or to delete a VPC peering connection request that you initiated, use [DeleteVpcPeeringConnection]. func rejectVpcPeeringConnection(input: RejectVpcPeeringConnectionInput) async throws -> RejectVpcPeeringConnectionOutputResponse diff --git a/Sources/Services/AWSEC2/Paginators.swift b/Sources/Services/AWSEC2/Paginators.swift index c64db917d8b..616575301a1 100644 --- a/Sources/Services/AWSEC2/Paginators.swift +++ b/Sources/Services/AWSEC2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAddressesAttributeOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAddressesAttributeInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressesAttributeOutputResponse` extension EC2Client { + /// Paginate over `[DescribeAddressesAttributeOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAddressesAttributeInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressesAttributeOutputResponse` public func describeAddressesAttributePaginated(input: DescribeAddressesAttributeInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAddressesAttributeInput.nextToken, outputKey: \DescribeAddressesAttributeOutputResponse.nextToken, paginationFunction: self.describeAddressesAttribute(input:)) } @@ -28,24 +27,23 @@ extension DescribeAddressesAttributeInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAddressesAttributePaginated` -/// to access the nested member `[EC2ClientTypes.AddressAttribute]` -/// - Returns: `[EC2ClientTypes.AddressAttribute]` extension PaginatorSequence where Input == DescribeAddressesAttributeInput, Output == DescribeAddressesAttributeOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAddressesAttributePaginated` + /// to access the nested member `[EC2ClientTypes.AddressAttribute]` + /// - Returns: `[EC2ClientTypes.AddressAttribute]` public func addresses() async throws -> [EC2ClientTypes.AddressAttribute] { return try await self.asyncCompactMap { item in item.addresses } } } - -/// Paginate over `[DescribeAddressTransfersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAddressTransfersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressTransfersOutputResponse` extension EC2Client { + /// Paginate over `[DescribeAddressTransfersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAddressTransfersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressTransfersOutputResponse` public func describeAddressTransfersPaginated(input: DescribeAddressTransfersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAddressTransfersInput.nextToken, outputKey: \DescribeAddressTransfersOutputResponse.nextToken, paginationFunction: self.describeAddressTransfers(input:)) } @@ -61,24 +59,23 @@ extension DescribeAddressTransfersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAddressTransfersPaginated` -/// to access the nested member `[EC2ClientTypes.AddressTransfer]` -/// - Returns: `[EC2ClientTypes.AddressTransfer]` extension PaginatorSequence where Input == DescribeAddressTransfersInput, Output == DescribeAddressTransfersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAddressTransfersPaginated` + /// to access the nested member `[EC2ClientTypes.AddressTransfer]` + /// - Returns: `[EC2ClientTypes.AddressTransfer]` public func addressTransfers() async throws -> [EC2ClientTypes.AddressTransfer] { return try await self.asyncCompactMap { item in item.addressTransfers } } } - -/// Paginate over `[DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAwsNetworkPerformanceMetricSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAwsNetworkPerformanceMetricSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse` public func describeAwsNetworkPerformanceMetricSubscriptionsPaginated(input: DescribeAwsNetworkPerformanceMetricSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAwsNetworkPerformanceMetricSubscriptionsInput.nextToken, outputKey: \DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse.nextToken, paginationFunction: self.describeAwsNetworkPerformanceMetricSubscriptions(input:)) } @@ -94,24 +91,23 @@ extension DescribeAwsNetworkPerformanceMetricSubscriptionsInput: ClientRuntime.P )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAwsNetworkPerformanceMetricSubscriptionsPaginated` -/// to access the nested member `[EC2ClientTypes.Subscription]` -/// - Returns: `[EC2ClientTypes.Subscription]` extension PaginatorSequence where Input == DescribeAwsNetworkPerformanceMetricSubscriptionsInput, Output == DescribeAwsNetworkPerformanceMetricSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAwsNetworkPerformanceMetricSubscriptionsPaginated` + /// to access the nested member `[EC2ClientTypes.Subscription]` + /// - Returns: `[EC2ClientTypes.Subscription]` public func subscriptions() async throws -> [EC2ClientTypes.Subscription] { return try await self.asyncCompactMap { item in item.subscriptions } } } - -/// Paginate over `[DescribeByoipCidrsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeByoipCidrsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeByoipCidrsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeByoipCidrsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeByoipCidrsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeByoipCidrsOutputResponse` public func describeByoipCidrsPaginated(input: DescribeByoipCidrsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeByoipCidrsInput.nextToken, outputKey: \DescribeByoipCidrsOutputResponse.nextToken, paginationFunction: self.describeByoipCidrs(input:)) } @@ -126,24 +122,23 @@ extension DescribeByoipCidrsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeByoipCidrsPaginated` -/// to access the nested member `[EC2ClientTypes.ByoipCidr]` -/// - Returns: `[EC2ClientTypes.ByoipCidr]` extension PaginatorSequence where Input == DescribeByoipCidrsInput, Output == DescribeByoipCidrsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeByoipCidrsPaginated` + /// to access the nested member `[EC2ClientTypes.ByoipCidr]` + /// - Returns: `[EC2ClientTypes.ByoipCidr]` public func byoipCidrs() async throws -> [EC2ClientTypes.ByoipCidr] { return try await self.asyncCompactMap { item in item.byoipCidrs } } } - -/// Paginate over `[DescribeCapacityReservationFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCapacityReservationFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityReservationFleetsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeCapacityReservationFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCapacityReservationFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityReservationFleetsOutputResponse` public func describeCapacityReservationFleetsPaginated(input: DescribeCapacityReservationFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCapacityReservationFleetsInput.nextToken, outputKey: \DescribeCapacityReservationFleetsOutputResponse.nextToken, paginationFunction: self.describeCapacityReservationFleets(input:)) } @@ -160,24 +155,23 @@ extension DescribeCapacityReservationFleetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCapacityReservationFleetsPaginated` -/// to access the nested member `[EC2ClientTypes.CapacityReservationFleet]` -/// - Returns: `[EC2ClientTypes.CapacityReservationFleet]` extension PaginatorSequence where Input == DescribeCapacityReservationFleetsInput, Output == DescribeCapacityReservationFleetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCapacityReservationFleetsPaginated` + /// to access the nested member `[EC2ClientTypes.CapacityReservationFleet]` + /// - Returns: `[EC2ClientTypes.CapacityReservationFleet]` public func capacityReservationFleets() async throws -> [EC2ClientTypes.CapacityReservationFleet] { return try await self.asyncCompactMap { item in item.capacityReservationFleets } } } - -/// Paginate over `[DescribeCapacityReservationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCapacityReservationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityReservationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeCapacityReservationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCapacityReservationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCapacityReservationsOutputResponse` public func describeCapacityReservationsPaginated(input: DescribeCapacityReservationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCapacityReservationsInput.nextToken, outputKey: \DescribeCapacityReservationsOutputResponse.nextToken, paginationFunction: self.describeCapacityReservations(input:)) } @@ -194,24 +188,23 @@ extension DescribeCapacityReservationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCapacityReservationsPaginated` -/// to access the nested member `[EC2ClientTypes.CapacityReservation]` -/// - Returns: `[EC2ClientTypes.CapacityReservation]` extension PaginatorSequence where Input == DescribeCapacityReservationsInput, Output == DescribeCapacityReservationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCapacityReservationsPaginated` + /// to access the nested member `[EC2ClientTypes.CapacityReservation]` + /// - Returns: `[EC2ClientTypes.CapacityReservation]` public func capacityReservations() async throws -> [EC2ClientTypes.CapacityReservation] { return try await self.asyncCompactMap { item in item.capacityReservations } } } - -/// Paginate over `[DescribeCarrierGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCarrierGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCarrierGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeCarrierGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCarrierGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCarrierGatewaysOutputResponse` public func describeCarrierGatewaysPaginated(input: DescribeCarrierGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCarrierGatewaysInput.nextToken, outputKey: \DescribeCarrierGatewaysOutputResponse.nextToken, paginationFunction: self.describeCarrierGateways(input:)) } @@ -228,24 +221,23 @@ extension DescribeCarrierGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCarrierGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.CarrierGateway]` -/// - Returns: `[EC2ClientTypes.CarrierGateway]` extension PaginatorSequence where Input == DescribeCarrierGatewaysInput, Output == DescribeCarrierGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCarrierGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.CarrierGateway]` + /// - Returns: `[EC2ClientTypes.CarrierGateway]` public func carrierGateways() async throws -> [EC2ClientTypes.CarrierGateway] { return try await self.asyncCompactMap { item in item.carrierGateways } } } - -/// Paginate over `[DescribeClassicLinkInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClassicLinkInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClassicLinkInstancesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClassicLinkInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClassicLinkInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClassicLinkInstancesOutputResponse` public func describeClassicLinkInstancesPaginated(input: DescribeClassicLinkInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClassicLinkInstancesInput.nextToken, outputKey: \DescribeClassicLinkInstancesOutputResponse.nextToken, paginationFunction: self.describeClassicLinkInstances(input:)) } @@ -262,24 +254,23 @@ extension DescribeClassicLinkInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClassicLinkInstancesPaginated` -/// to access the nested member `[EC2ClientTypes.ClassicLinkInstance]` -/// - Returns: `[EC2ClientTypes.ClassicLinkInstance]` extension PaginatorSequence where Input == DescribeClassicLinkInstancesInput, Output == DescribeClassicLinkInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClassicLinkInstancesPaginated` + /// to access the nested member `[EC2ClientTypes.ClassicLinkInstance]` + /// - Returns: `[EC2ClientTypes.ClassicLinkInstance]` public func instances() async throws -> [EC2ClientTypes.ClassicLinkInstance] { return try await self.asyncCompactMap { item in item.instances } } } - -/// Paginate over `[DescribeClientVpnAuthorizationRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientVpnAuthorizationRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnAuthorizationRulesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClientVpnAuthorizationRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientVpnAuthorizationRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnAuthorizationRulesOutputResponse` public func describeClientVpnAuthorizationRulesPaginated(input: DescribeClientVpnAuthorizationRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientVpnAuthorizationRulesInput.nextToken, outputKey: \DescribeClientVpnAuthorizationRulesOutputResponse.nextToken, paginationFunction: self.describeClientVpnAuthorizationRules(input:)) } @@ -296,24 +287,23 @@ extension DescribeClientVpnAuthorizationRulesInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientVpnAuthorizationRulesPaginated` -/// to access the nested member `[EC2ClientTypes.AuthorizationRule]` -/// - Returns: `[EC2ClientTypes.AuthorizationRule]` extension PaginatorSequence where Input == DescribeClientVpnAuthorizationRulesInput, Output == DescribeClientVpnAuthorizationRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientVpnAuthorizationRulesPaginated` + /// to access the nested member `[EC2ClientTypes.AuthorizationRule]` + /// - Returns: `[EC2ClientTypes.AuthorizationRule]` public func authorizationRules() async throws -> [EC2ClientTypes.AuthorizationRule] { return try await self.asyncCompactMap { item in item.authorizationRules } } } - -/// Paginate over `[DescribeClientVpnConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientVpnConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnConnectionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClientVpnConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientVpnConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnConnectionsOutputResponse` public func describeClientVpnConnectionsPaginated(input: DescribeClientVpnConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientVpnConnectionsInput.nextToken, outputKey: \DescribeClientVpnConnectionsOutputResponse.nextToken, paginationFunction: self.describeClientVpnConnections(input:)) } @@ -330,24 +320,23 @@ extension DescribeClientVpnConnectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientVpnConnectionsPaginated` -/// to access the nested member `[EC2ClientTypes.ClientVpnConnection]` -/// - Returns: `[EC2ClientTypes.ClientVpnConnection]` extension PaginatorSequence where Input == DescribeClientVpnConnectionsInput, Output == DescribeClientVpnConnectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientVpnConnectionsPaginated` + /// to access the nested member `[EC2ClientTypes.ClientVpnConnection]` + /// - Returns: `[EC2ClientTypes.ClientVpnConnection]` public func connections() async throws -> [EC2ClientTypes.ClientVpnConnection] { return try await self.asyncCompactMap { item in item.connections } } } - -/// Paginate over `[DescribeClientVpnEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientVpnEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnEndpointsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClientVpnEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientVpnEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnEndpointsOutputResponse` public func describeClientVpnEndpointsPaginated(input: DescribeClientVpnEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientVpnEndpointsInput.nextToken, outputKey: \DescribeClientVpnEndpointsOutputResponse.nextToken, paginationFunction: self.describeClientVpnEndpoints(input:)) } @@ -364,24 +353,23 @@ extension DescribeClientVpnEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientVpnEndpointsPaginated` -/// to access the nested member `[EC2ClientTypes.ClientVpnEndpoint]` -/// - Returns: `[EC2ClientTypes.ClientVpnEndpoint]` extension PaginatorSequence where Input == DescribeClientVpnEndpointsInput, Output == DescribeClientVpnEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientVpnEndpointsPaginated` + /// to access the nested member `[EC2ClientTypes.ClientVpnEndpoint]` + /// - Returns: `[EC2ClientTypes.ClientVpnEndpoint]` public func clientVpnEndpoints() async throws -> [EC2ClientTypes.ClientVpnEndpoint] { return try await self.asyncCompactMap { item in item.clientVpnEndpoints } } } - -/// Paginate over `[DescribeClientVpnRoutesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientVpnRoutesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnRoutesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClientVpnRoutesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientVpnRoutesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnRoutesOutputResponse` public func describeClientVpnRoutesPaginated(input: DescribeClientVpnRoutesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientVpnRoutesInput.nextToken, outputKey: \DescribeClientVpnRoutesOutputResponse.nextToken, paginationFunction: self.describeClientVpnRoutes(input:)) } @@ -398,24 +386,23 @@ extension DescribeClientVpnRoutesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientVpnRoutesPaginated` -/// to access the nested member `[EC2ClientTypes.ClientVpnRoute]` -/// - Returns: `[EC2ClientTypes.ClientVpnRoute]` extension PaginatorSequence where Input == DescribeClientVpnRoutesInput, Output == DescribeClientVpnRoutesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientVpnRoutesPaginated` + /// to access the nested member `[EC2ClientTypes.ClientVpnRoute]` + /// - Returns: `[EC2ClientTypes.ClientVpnRoute]` public func routes() async throws -> [EC2ClientTypes.ClientVpnRoute] { return try await self.asyncCompactMap { item in item.routes } } } - -/// Paginate over `[DescribeClientVpnTargetNetworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClientVpnTargetNetworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnTargetNetworksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeClientVpnTargetNetworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClientVpnTargetNetworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClientVpnTargetNetworksOutputResponse` public func describeClientVpnTargetNetworksPaginated(input: DescribeClientVpnTargetNetworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClientVpnTargetNetworksInput.nextToken, outputKey: \DescribeClientVpnTargetNetworksOutputResponse.nextToken, paginationFunction: self.describeClientVpnTargetNetworks(input:)) } @@ -433,24 +420,23 @@ extension DescribeClientVpnTargetNetworksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClientVpnTargetNetworksPaginated` -/// to access the nested member `[EC2ClientTypes.TargetNetwork]` -/// - Returns: `[EC2ClientTypes.TargetNetwork]` extension PaginatorSequence where Input == DescribeClientVpnTargetNetworksInput, Output == DescribeClientVpnTargetNetworksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClientVpnTargetNetworksPaginated` + /// to access the nested member `[EC2ClientTypes.TargetNetwork]` + /// - Returns: `[EC2ClientTypes.TargetNetwork]` public func clientVpnTargetNetworks() async throws -> [EC2ClientTypes.TargetNetwork] { return try await self.asyncCompactMap { item in item.clientVpnTargetNetworks } } } - -/// Paginate over `[DescribeCoipPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCoipPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCoipPoolsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeCoipPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCoipPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCoipPoolsOutputResponse` public func describeCoipPoolsPaginated(input: DescribeCoipPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCoipPoolsInput.nextToken, outputKey: \DescribeCoipPoolsOutputResponse.nextToken, paginationFunction: self.describeCoipPools(input:)) } @@ -467,24 +453,23 @@ extension DescribeCoipPoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCoipPoolsPaginated` -/// to access the nested member `[EC2ClientTypes.CoipPool]` -/// - Returns: `[EC2ClientTypes.CoipPool]` extension PaginatorSequence where Input == DescribeCoipPoolsInput, Output == DescribeCoipPoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCoipPoolsPaginated` + /// to access the nested member `[EC2ClientTypes.CoipPool]` + /// - Returns: `[EC2ClientTypes.CoipPool]` public func coipPools() async throws -> [EC2ClientTypes.CoipPool] { return try await self.asyncCompactMap { item in item.coipPools } } } - -/// Paginate over `[DescribeDhcpOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDhcpOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDhcpOptionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeDhcpOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDhcpOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDhcpOptionsOutputResponse` public func describeDhcpOptionsPaginated(input: DescribeDhcpOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDhcpOptionsInput.nextToken, outputKey: \DescribeDhcpOptionsOutputResponse.nextToken, paginationFunction: self.describeDhcpOptions(input:)) } @@ -501,24 +486,23 @@ extension DescribeDhcpOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDhcpOptionsPaginated` -/// to access the nested member `[EC2ClientTypes.DhcpOptions]` -/// - Returns: `[EC2ClientTypes.DhcpOptions]` extension PaginatorSequence where Input == DescribeDhcpOptionsInput, Output == DescribeDhcpOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDhcpOptionsPaginated` + /// to access the nested member `[EC2ClientTypes.DhcpOptions]` + /// - Returns: `[EC2ClientTypes.DhcpOptions]` public func dhcpOptions() async throws -> [EC2ClientTypes.DhcpOptions] { return try await self.asyncCompactMap { item in item.dhcpOptions } } } - -/// Paginate over `[DescribeEgressOnlyInternetGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEgressOnlyInternetGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEgressOnlyInternetGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeEgressOnlyInternetGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEgressOnlyInternetGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEgressOnlyInternetGatewaysOutputResponse` public func describeEgressOnlyInternetGatewaysPaginated(input: DescribeEgressOnlyInternetGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEgressOnlyInternetGatewaysInput.nextToken, outputKey: \DescribeEgressOnlyInternetGatewaysOutputResponse.nextToken, paginationFunction: self.describeEgressOnlyInternetGateways(input:)) } @@ -535,24 +519,23 @@ extension DescribeEgressOnlyInternetGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEgressOnlyInternetGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.EgressOnlyInternetGateway]` -/// - Returns: `[EC2ClientTypes.EgressOnlyInternetGateway]` extension PaginatorSequence where Input == DescribeEgressOnlyInternetGatewaysInput, Output == DescribeEgressOnlyInternetGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEgressOnlyInternetGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.EgressOnlyInternetGateway]` + /// - Returns: `[EC2ClientTypes.EgressOnlyInternetGateway]` public func egressOnlyInternetGateways() async throws -> [EC2ClientTypes.EgressOnlyInternetGateway] { return try await self.asyncCompactMap { item in item.egressOnlyInternetGateways } } } - -/// Paginate over `[DescribeExportImageTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeExportImageTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeExportImageTasksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeExportImageTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeExportImageTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeExportImageTasksOutputResponse` public func describeExportImageTasksPaginated(input: DescribeExportImageTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeExportImageTasksInput.nextToken, outputKey: \DescribeExportImageTasksOutputResponse.nextToken, paginationFunction: self.describeExportImageTasks(input:)) } @@ -569,24 +552,23 @@ extension DescribeExportImageTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeExportImageTasksPaginated` -/// to access the nested member `[EC2ClientTypes.ExportImageTask]` -/// - Returns: `[EC2ClientTypes.ExportImageTask]` extension PaginatorSequence where Input == DescribeExportImageTasksInput, Output == DescribeExportImageTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeExportImageTasksPaginated` + /// to access the nested member `[EC2ClientTypes.ExportImageTask]` + /// - Returns: `[EC2ClientTypes.ExportImageTask]` public func exportImageTasks() async throws -> [EC2ClientTypes.ExportImageTask] { return try await self.asyncCompactMap { item in item.exportImageTasks } } } - -/// Paginate over `[DescribeFastLaunchImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFastLaunchImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFastLaunchImagesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeFastLaunchImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFastLaunchImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFastLaunchImagesOutputResponse` public func describeFastLaunchImagesPaginated(input: DescribeFastLaunchImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFastLaunchImagesInput.nextToken, outputKey: \DescribeFastLaunchImagesOutputResponse.nextToken, paginationFunction: self.describeFastLaunchImages(input:)) } @@ -603,24 +585,23 @@ extension DescribeFastLaunchImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFastLaunchImagesPaginated` -/// to access the nested member `[EC2ClientTypes.DescribeFastLaunchImagesSuccessItem]` -/// - Returns: `[EC2ClientTypes.DescribeFastLaunchImagesSuccessItem]` extension PaginatorSequence where Input == DescribeFastLaunchImagesInput, Output == DescribeFastLaunchImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFastLaunchImagesPaginated` + /// to access the nested member `[EC2ClientTypes.DescribeFastLaunchImagesSuccessItem]` + /// - Returns: `[EC2ClientTypes.DescribeFastLaunchImagesSuccessItem]` public func fastLaunchImages() async throws -> [EC2ClientTypes.DescribeFastLaunchImagesSuccessItem] { return try await self.asyncCompactMap { item in item.fastLaunchImages } } } - -/// Paginate over `[DescribeFastSnapshotRestoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFastSnapshotRestoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFastSnapshotRestoresOutputResponse` extension EC2Client { + /// Paginate over `[DescribeFastSnapshotRestoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFastSnapshotRestoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFastSnapshotRestoresOutputResponse` public func describeFastSnapshotRestoresPaginated(input: DescribeFastSnapshotRestoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFastSnapshotRestoresInput.nextToken, outputKey: \DescribeFastSnapshotRestoresOutputResponse.nextToken, paginationFunction: self.describeFastSnapshotRestores(input:)) } @@ -636,24 +617,23 @@ extension DescribeFastSnapshotRestoresInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFastSnapshotRestoresPaginated` -/// to access the nested member `[EC2ClientTypes.DescribeFastSnapshotRestoreSuccessItem]` -/// - Returns: `[EC2ClientTypes.DescribeFastSnapshotRestoreSuccessItem]` extension PaginatorSequence where Input == DescribeFastSnapshotRestoresInput, Output == DescribeFastSnapshotRestoresOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFastSnapshotRestoresPaginated` + /// to access the nested member `[EC2ClientTypes.DescribeFastSnapshotRestoreSuccessItem]` + /// - Returns: `[EC2ClientTypes.DescribeFastSnapshotRestoreSuccessItem]` public func fastSnapshotRestores() async throws -> [EC2ClientTypes.DescribeFastSnapshotRestoreSuccessItem] { return try await self.asyncCompactMap { item in item.fastSnapshotRestores } } } - -/// Paginate over `[DescribeFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetsOutputResponse` public func describeFleetsPaginated(input: DescribeFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetsInput.nextToken, outputKey: \DescribeFleetsOutputResponse.nextToken, paginationFunction: self.describeFleets(input:)) } @@ -670,24 +650,23 @@ extension DescribeFleetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFleetsPaginated` -/// to access the nested member `[EC2ClientTypes.FleetData]` -/// - Returns: `[EC2ClientTypes.FleetData]` extension PaginatorSequence where Input == DescribeFleetsInput, Output == DescribeFleetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFleetsPaginated` + /// to access the nested member `[EC2ClientTypes.FleetData]` + /// - Returns: `[EC2ClientTypes.FleetData]` public func fleets() async throws -> [EC2ClientTypes.FleetData] { return try await self.asyncCompactMap { item in item.fleets } } } - -/// Paginate over `[DescribeFlowLogsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFlowLogsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFlowLogsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeFlowLogsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFlowLogsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFlowLogsOutputResponse` public func describeFlowLogsPaginated(input: DescribeFlowLogsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFlowLogsInput.nextToken, outputKey: \DescribeFlowLogsOutputResponse.nextToken, paginationFunction: self.describeFlowLogs(input:)) } @@ -704,24 +683,23 @@ extension DescribeFlowLogsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFlowLogsPaginated` -/// to access the nested member `[EC2ClientTypes.FlowLog]` -/// - Returns: `[EC2ClientTypes.FlowLog]` extension PaginatorSequence where Input == DescribeFlowLogsInput, Output == DescribeFlowLogsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFlowLogsPaginated` + /// to access the nested member `[EC2ClientTypes.FlowLog]` + /// - Returns: `[EC2ClientTypes.FlowLog]` public func flowLogs() async throws -> [EC2ClientTypes.FlowLog] { return try await self.asyncCompactMap { item in item.flowLogs } } } - -/// Paginate over `[DescribeFpgaImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFpgaImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFpgaImagesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeFpgaImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFpgaImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFpgaImagesOutputResponse` public func describeFpgaImagesPaginated(input: DescribeFpgaImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFpgaImagesInput.nextToken, outputKey: \DescribeFpgaImagesOutputResponse.nextToken, paginationFunction: self.describeFpgaImages(input:)) } @@ -739,24 +717,23 @@ extension DescribeFpgaImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFpgaImagesPaginated` -/// to access the nested member `[EC2ClientTypes.FpgaImage]` -/// - Returns: `[EC2ClientTypes.FpgaImage]` extension PaginatorSequence where Input == DescribeFpgaImagesInput, Output == DescribeFpgaImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFpgaImagesPaginated` + /// to access the nested member `[EC2ClientTypes.FpgaImage]` + /// - Returns: `[EC2ClientTypes.FpgaImage]` public func fpgaImages() async throws -> [EC2ClientTypes.FpgaImage] { return try await self.asyncCompactMap { item in item.fpgaImages } } } - -/// Paginate over `[DescribeHostReservationOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHostReservationOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHostReservationOfferingsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeHostReservationOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHostReservationOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHostReservationOfferingsOutputResponse` public func describeHostReservationOfferingsPaginated(input: DescribeHostReservationOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHostReservationOfferingsInput.nextToken, outputKey: \DescribeHostReservationOfferingsOutputResponse.nextToken, paginationFunction: self.describeHostReservationOfferings(input:)) } @@ -774,24 +751,23 @@ extension DescribeHostReservationOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeHostReservationOfferingsPaginated` -/// to access the nested member `[EC2ClientTypes.HostOffering]` -/// - Returns: `[EC2ClientTypes.HostOffering]` extension PaginatorSequence where Input == DescribeHostReservationOfferingsInput, Output == DescribeHostReservationOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeHostReservationOfferingsPaginated` + /// to access the nested member `[EC2ClientTypes.HostOffering]` + /// - Returns: `[EC2ClientTypes.HostOffering]` public func offeringSet() async throws -> [EC2ClientTypes.HostOffering] { return try await self.asyncCompactMap { item in item.offeringSet } } } - -/// Paginate over `[DescribeHostReservationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHostReservationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHostReservationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeHostReservationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHostReservationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHostReservationsOutputResponse` public func describeHostReservationsPaginated(input: DescribeHostReservationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHostReservationsInput.nextToken, outputKey: \DescribeHostReservationsOutputResponse.nextToken, paginationFunction: self.describeHostReservations(input:)) } @@ -807,24 +783,23 @@ extension DescribeHostReservationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeHostReservationsPaginated` -/// to access the nested member `[EC2ClientTypes.HostReservation]` -/// - Returns: `[EC2ClientTypes.HostReservation]` extension PaginatorSequence where Input == DescribeHostReservationsInput, Output == DescribeHostReservationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeHostReservationsPaginated` + /// to access the nested member `[EC2ClientTypes.HostReservation]` + /// - Returns: `[EC2ClientTypes.HostReservation]` public func hostReservationSet() async throws -> [EC2ClientTypes.HostReservation] { return try await self.asyncCompactMap { item in item.hostReservationSet } } } - -/// Paginate over `[DescribeHostsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHostsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHostsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeHostsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHostsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHostsOutputResponse` public func describeHostsPaginated(input: DescribeHostsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHostsInput.nextToken, outputKey: \DescribeHostsOutputResponse.nextToken, paginationFunction: self.describeHosts(input:)) } @@ -840,24 +815,23 @@ extension DescribeHostsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeHostsPaginated` -/// to access the nested member `[EC2ClientTypes.Host]` -/// - Returns: `[EC2ClientTypes.Host]` extension PaginatorSequence where Input == DescribeHostsInput, Output == DescribeHostsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeHostsPaginated` + /// to access the nested member `[EC2ClientTypes.Host]` + /// - Returns: `[EC2ClientTypes.Host]` public func hosts() async throws -> [EC2ClientTypes.Host] { return try await self.asyncCompactMap { item in item.hosts } } } - -/// Paginate over `[DescribeIamInstanceProfileAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeIamInstanceProfileAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeIamInstanceProfileAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeIamInstanceProfileAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeIamInstanceProfileAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIamInstanceProfileAssociationsOutputResponse` public func describeIamInstanceProfileAssociationsPaginated(input: DescribeIamInstanceProfileAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeIamInstanceProfileAssociationsInput.nextToken, outputKey: \DescribeIamInstanceProfileAssociationsOutputResponse.nextToken, paginationFunction: self.describeIamInstanceProfileAssociations(input:)) } @@ -873,24 +847,23 @@ extension DescribeIamInstanceProfileAssociationsInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `describeIamInstanceProfileAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.IamInstanceProfileAssociation]` -/// - Returns: `[EC2ClientTypes.IamInstanceProfileAssociation]` extension PaginatorSequence where Input == DescribeIamInstanceProfileAssociationsInput, Output == DescribeIamInstanceProfileAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeIamInstanceProfileAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.IamInstanceProfileAssociation]` + /// - Returns: `[EC2ClientTypes.IamInstanceProfileAssociation]` public func iamInstanceProfileAssociations() async throws -> [EC2ClientTypes.IamInstanceProfileAssociation] { return try await self.asyncCompactMap { item in item.iamInstanceProfileAssociations } } } - -/// Paginate over `[DescribeImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` public func describeImagesPaginated(input: DescribeImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImagesInput.nextToken, outputKey: \DescribeImagesOutputResponse.nextToken, paginationFunction: self.describeImages(input:)) } @@ -910,24 +883,23 @@ extension DescribeImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` -/// to access the nested member `[EC2ClientTypes.Image]` -/// - Returns: `[EC2ClientTypes.Image]` extension PaginatorSequence where Input == DescribeImagesInput, Output == DescribeImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` + /// to access the nested member `[EC2ClientTypes.Image]` + /// - Returns: `[EC2ClientTypes.Image]` public func images() async throws -> [EC2ClientTypes.Image] { return try await self.asyncCompactMap { item in item.images } } } - -/// Paginate over `[DescribeImportImageTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImportImageTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImportImageTasksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeImportImageTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImportImageTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImportImageTasksOutputResponse` public func describeImportImageTasksPaginated(input: DescribeImportImageTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImportImageTasksInput.nextToken, outputKey: \DescribeImportImageTasksOutputResponse.nextToken, paginationFunction: self.describeImportImageTasks(input:)) } @@ -944,24 +916,23 @@ extension DescribeImportImageTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImportImageTasksPaginated` -/// to access the nested member `[EC2ClientTypes.ImportImageTask]` -/// - Returns: `[EC2ClientTypes.ImportImageTask]` extension PaginatorSequence where Input == DescribeImportImageTasksInput, Output == DescribeImportImageTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImportImageTasksPaginated` + /// to access the nested member `[EC2ClientTypes.ImportImageTask]` + /// - Returns: `[EC2ClientTypes.ImportImageTask]` public func importImageTasks() async throws -> [EC2ClientTypes.ImportImageTask] { return try await self.asyncCompactMap { item in item.importImageTasks } } } - -/// Paginate over `[DescribeImportSnapshotTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImportSnapshotTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImportSnapshotTasksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeImportSnapshotTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImportSnapshotTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImportSnapshotTasksOutputResponse` public func describeImportSnapshotTasksPaginated(input: DescribeImportSnapshotTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImportSnapshotTasksInput.nextToken, outputKey: \DescribeImportSnapshotTasksOutputResponse.nextToken, paginationFunction: self.describeImportSnapshotTasks(input:)) } @@ -978,24 +949,23 @@ extension DescribeImportSnapshotTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImportSnapshotTasksPaginated` -/// to access the nested member `[EC2ClientTypes.ImportSnapshotTask]` -/// - Returns: `[EC2ClientTypes.ImportSnapshotTask]` extension PaginatorSequence where Input == DescribeImportSnapshotTasksInput, Output == DescribeImportSnapshotTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImportSnapshotTasksPaginated` + /// to access the nested member `[EC2ClientTypes.ImportSnapshotTask]` + /// - Returns: `[EC2ClientTypes.ImportSnapshotTask]` public func importSnapshotTasks() async throws -> [EC2ClientTypes.ImportSnapshotTask] { return try await self.asyncCompactMap { item in item.importSnapshotTasks } } } - -/// Paginate over `[DescribeInstanceCreditSpecificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceCreditSpecificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceCreditSpecificationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstanceCreditSpecificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceCreditSpecificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceCreditSpecificationsOutputResponse` public func describeInstanceCreditSpecificationsPaginated(input: DescribeInstanceCreditSpecificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceCreditSpecificationsInput.nextToken, outputKey: \DescribeInstanceCreditSpecificationsOutputResponse.nextToken, paginationFunction: self.describeInstanceCreditSpecifications(input:)) } @@ -1012,24 +982,23 @@ extension DescribeInstanceCreditSpecificationsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceCreditSpecificationsPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceCreditSpecification]` -/// - Returns: `[EC2ClientTypes.InstanceCreditSpecification]` extension PaginatorSequence where Input == DescribeInstanceCreditSpecificationsInput, Output == DescribeInstanceCreditSpecificationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceCreditSpecificationsPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceCreditSpecification]` + /// - Returns: `[EC2ClientTypes.InstanceCreditSpecification]` public func instanceCreditSpecifications() async throws -> [EC2ClientTypes.InstanceCreditSpecification] { return try await self.asyncCompactMap { item in item.instanceCreditSpecifications } } } - -/// Paginate over `[DescribeInstanceEventWindowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceEventWindowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceEventWindowsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstanceEventWindowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceEventWindowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceEventWindowsOutputResponse` public func describeInstanceEventWindowsPaginated(input: DescribeInstanceEventWindowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceEventWindowsInput.nextToken, outputKey: \DescribeInstanceEventWindowsOutputResponse.nextToken, paginationFunction: self.describeInstanceEventWindows(input:)) } @@ -1046,24 +1015,23 @@ extension DescribeInstanceEventWindowsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceEventWindowsPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceEventWindow]` -/// - Returns: `[EC2ClientTypes.InstanceEventWindow]` extension PaginatorSequence where Input == DescribeInstanceEventWindowsInput, Output == DescribeInstanceEventWindowsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceEventWindowsPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceEventWindow]` + /// - Returns: `[EC2ClientTypes.InstanceEventWindow]` public func instanceEventWindows() async throws -> [EC2ClientTypes.InstanceEventWindow] { return try await self.asyncCompactMap { item in item.instanceEventWindows } } } - -/// Paginate over `[DescribeInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancesOutputResponse` public func describeInstancesPaginated(input: DescribeInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstancesInput.nextToken, outputKey: \DescribeInstancesOutputResponse.nextToken, paginationFunction: self.describeInstances(input:)) } @@ -1080,24 +1048,23 @@ extension DescribeInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstancesPaginated` -/// to access the nested member `[EC2ClientTypes.Reservation]` -/// - Returns: `[EC2ClientTypes.Reservation]` extension PaginatorSequence where Input == DescribeInstancesInput, Output == DescribeInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstancesPaginated` + /// to access the nested member `[EC2ClientTypes.Reservation]` + /// - Returns: `[EC2ClientTypes.Reservation]` public func reservations() async throws -> [EC2ClientTypes.Reservation] { return try await self.asyncCompactMap { item in item.reservations } } } - -/// Paginate over `[DescribeInstanceStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceStatusOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstanceStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceStatusOutputResponse` public func describeInstanceStatusPaginated(input: DescribeInstanceStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceStatusInput.nextToken, outputKey: \DescribeInstanceStatusOutputResponse.nextToken, paginationFunction: self.describeInstanceStatus(input:)) } @@ -1115,24 +1082,23 @@ extension DescribeInstanceStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceStatusPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceStatus]` -/// - Returns: `[EC2ClientTypes.InstanceStatus]` extension PaginatorSequence where Input == DescribeInstanceStatusInput, Output == DescribeInstanceStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceStatusPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceStatus]` + /// - Returns: `[EC2ClientTypes.InstanceStatus]` public func instanceStatuses() async throws -> [EC2ClientTypes.InstanceStatus] { return try await self.asyncCompactMap { item in item.instanceStatuses } } } - -/// Paginate over `[DescribeInstanceTypeOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceTypeOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceTypeOfferingsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstanceTypeOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceTypeOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceTypeOfferingsOutputResponse` public func describeInstanceTypeOfferingsPaginated(input: DescribeInstanceTypeOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceTypeOfferingsInput.nextToken, outputKey: \DescribeInstanceTypeOfferingsOutputResponse.nextToken, paginationFunction: self.describeInstanceTypeOfferings(input:)) } @@ -1149,24 +1115,23 @@ extension DescribeInstanceTypeOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceTypeOfferingsPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceTypeOffering]` -/// - Returns: `[EC2ClientTypes.InstanceTypeOffering]` extension PaginatorSequence where Input == DescribeInstanceTypeOfferingsInput, Output == DescribeInstanceTypeOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceTypeOfferingsPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceTypeOffering]` + /// - Returns: `[EC2ClientTypes.InstanceTypeOffering]` public func instanceTypeOfferings() async throws -> [EC2ClientTypes.InstanceTypeOffering] { return try await self.asyncCompactMap { item in item.instanceTypeOfferings } } } - -/// Paginate over `[DescribeInstanceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceTypesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInstanceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceTypesOutputResponse` public func describeInstanceTypesPaginated(input: DescribeInstanceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceTypesInput.nextToken, outputKey: \DescribeInstanceTypesOutputResponse.nextToken, paginationFunction: self.describeInstanceTypes(input:)) } @@ -1183,24 +1148,23 @@ extension DescribeInstanceTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceTypesPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceTypeInfo]` -/// - Returns: `[EC2ClientTypes.InstanceTypeInfo]` extension PaginatorSequence where Input == DescribeInstanceTypesInput, Output == DescribeInstanceTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceTypesPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceTypeInfo]` + /// - Returns: `[EC2ClientTypes.InstanceTypeInfo]` public func instanceTypes() async throws -> [EC2ClientTypes.InstanceTypeInfo] { return try await self.asyncCompactMap { item in item.instanceTypes } } } - -/// Paginate over `[DescribeInternetGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInternetGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInternetGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeInternetGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInternetGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInternetGatewaysOutputResponse` public func describeInternetGatewaysPaginated(input: DescribeInternetGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInternetGatewaysInput.nextToken, outputKey: \DescribeInternetGatewaysOutputResponse.nextToken, paginationFunction: self.describeInternetGateways(input:)) } @@ -1217,24 +1181,23 @@ extension DescribeInternetGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInternetGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.InternetGateway]` -/// - Returns: `[EC2ClientTypes.InternetGateway]` extension PaginatorSequence where Input == DescribeInternetGatewaysInput, Output == DescribeInternetGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInternetGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.InternetGateway]` + /// - Returns: `[EC2ClientTypes.InternetGateway]` public func internetGateways() async throws -> [EC2ClientTypes.InternetGateway] { return try await self.asyncCompactMap { item in item.internetGateways } } } - -/// Paginate over `[DescribeIpamPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeIpamPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamPoolsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeIpamPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeIpamPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamPoolsOutputResponse` public func describeIpamPoolsPaginated(input: DescribeIpamPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeIpamPoolsInput.nextToken, outputKey: \DescribeIpamPoolsOutputResponse.nextToken, paginationFunction: self.describeIpamPools(input:)) } @@ -1251,24 +1214,23 @@ extension DescribeIpamPoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeIpamPoolsPaginated` -/// to access the nested member `[EC2ClientTypes.IpamPool]` -/// - Returns: `[EC2ClientTypes.IpamPool]` extension PaginatorSequence where Input == DescribeIpamPoolsInput, Output == DescribeIpamPoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeIpamPoolsPaginated` + /// to access the nested member `[EC2ClientTypes.IpamPool]` + /// - Returns: `[EC2ClientTypes.IpamPool]` public func ipamPools() async throws -> [EC2ClientTypes.IpamPool] { return try await self.asyncCompactMap { item in item.ipamPools } } } - -/// Paginate over `[DescribeIpamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeIpamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeIpamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeIpamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamsOutputResponse` public func describeIpamsPaginated(input: DescribeIpamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeIpamsInput.nextToken, outputKey: \DescribeIpamsOutputResponse.nextToken, paginationFunction: self.describeIpams(input:)) } @@ -1285,24 +1247,23 @@ extension DescribeIpamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeIpamsPaginated` -/// to access the nested member `[EC2ClientTypes.Ipam]` -/// - Returns: `[EC2ClientTypes.Ipam]` extension PaginatorSequence where Input == DescribeIpamsInput, Output == DescribeIpamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeIpamsPaginated` + /// to access the nested member `[EC2ClientTypes.Ipam]` + /// - Returns: `[EC2ClientTypes.Ipam]` public func ipams() async throws -> [EC2ClientTypes.Ipam] { return try await self.asyncCompactMap { item in item.ipams } } } - -/// Paginate over `[DescribeIpamScopesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeIpamScopesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamScopesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeIpamScopesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeIpamScopesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIpamScopesOutputResponse` public func describeIpamScopesPaginated(input: DescribeIpamScopesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeIpamScopesInput.nextToken, outputKey: \DescribeIpamScopesOutputResponse.nextToken, paginationFunction: self.describeIpamScopes(input:)) } @@ -1319,24 +1280,23 @@ extension DescribeIpamScopesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeIpamScopesPaginated` -/// to access the nested member `[EC2ClientTypes.IpamScope]` -/// - Returns: `[EC2ClientTypes.IpamScope]` extension PaginatorSequence where Input == DescribeIpamScopesInput, Output == DescribeIpamScopesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeIpamScopesPaginated` + /// to access the nested member `[EC2ClientTypes.IpamScope]` + /// - Returns: `[EC2ClientTypes.IpamScope]` public func ipamScopes() async throws -> [EC2ClientTypes.IpamScope] { return try await self.asyncCompactMap { item in item.ipamScopes } } } - -/// Paginate over `[DescribeIpv6PoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeIpv6PoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeIpv6PoolsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeIpv6PoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeIpv6PoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIpv6PoolsOutputResponse` public func describeIpv6PoolsPaginated(input: DescribeIpv6PoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeIpv6PoolsInput.nextToken, outputKey: \DescribeIpv6PoolsOutputResponse.nextToken, paginationFunction: self.describeIpv6Pools(input:)) } @@ -1353,24 +1313,23 @@ extension DescribeIpv6PoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeIpv6PoolsPaginated` -/// to access the nested member `[EC2ClientTypes.Ipv6Pool]` -/// - Returns: `[EC2ClientTypes.Ipv6Pool]` extension PaginatorSequence where Input == DescribeIpv6PoolsInput, Output == DescribeIpv6PoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeIpv6PoolsPaginated` + /// to access the nested member `[EC2ClientTypes.Ipv6Pool]` + /// - Returns: `[EC2ClientTypes.Ipv6Pool]` public func ipv6Pools() async throws -> [EC2ClientTypes.Ipv6Pool] { return try await self.asyncCompactMap { item in item.ipv6Pools } } } - -/// Paginate over `[DescribeLaunchTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLaunchTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchTemplatesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLaunchTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLaunchTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchTemplatesOutputResponse` public func describeLaunchTemplatesPaginated(input: DescribeLaunchTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLaunchTemplatesInput.nextToken, outputKey: \DescribeLaunchTemplatesOutputResponse.nextToken, paginationFunction: self.describeLaunchTemplates(input:)) } @@ -1388,24 +1347,23 @@ extension DescribeLaunchTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLaunchTemplatesPaginated` -/// to access the nested member `[EC2ClientTypes.LaunchTemplate]` -/// - Returns: `[EC2ClientTypes.LaunchTemplate]` extension PaginatorSequence where Input == DescribeLaunchTemplatesInput, Output == DescribeLaunchTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLaunchTemplatesPaginated` + /// to access the nested member `[EC2ClientTypes.LaunchTemplate]` + /// - Returns: `[EC2ClientTypes.LaunchTemplate]` public func launchTemplates() async throws -> [EC2ClientTypes.LaunchTemplate] { return try await self.asyncCompactMap { item in item.launchTemplates } } } - -/// Paginate over `[DescribeLaunchTemplateVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLaunchTemplateVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchTemplateVersionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLaunchTemplateVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLaunchTemplateVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLaunchTemplateVersionsOutputResponse` public func describeLaunchTemplateVersionsPaginated(input: DescribeLaunchTemplateVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLaunchTemplateVersionsInput.nextToken, outputKey: \DescribeLaunchTemplateVersionsOutputResponse.nextToken, paginationFunction: self.describeLaunchTemplateVersions(input:)) } @@ -1426,24 +1384,23 @@ extension DescribeLaunchTemplateVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLaunchTemplateVersionsPaginated` -/// to access the nested member `[EC2ClientTypes.LaunchTemplateVersion]` -/// - Returns: `[EC2ClientTypes.LaunchTemplateVersion]` extension PaginatorSequence where Input == DescribeLaunchTemplateVersionsInput, Output == DescribeLaunchTemplateVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLaunchTemplateVersionsPaginated` + /// to access the nested member `[EC2ClientTypes.LaunchTemplateVersion]` + /// - Returns: `[EC2ClientTypes.LaunchTemplateVersion]` public func launchTemplateVersions() async throws -> [EC2ClientTypes.LaunchTemplateVersion] { return try await self.asyncCompactMap { item in item.launchTemplateVersions } } } - -/// Paginate over `[DescribeLocalGatewayRouteTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewayRouteTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTablesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewayRouteTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewayRouteTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTablesOutputResponse` public func describeLocalGatewayRouteTablesPaginated(input: DescribeLocalGatewayRouteTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewayRouteTablesInput.nextToken, outputKey: \DescribeLocalGatewayRouteTablesOutputResponse.nextToken, paginationFunction: self.describeLocalGatewayRouteTables(input:)) } @@ -1460,24 +1417,23 @@ extension DescribeLocalGatewayRouteTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTablesPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTable]` -/// - Returns: `[EC2ClientTypes.LocalGatewayRouteTable]` extension PaginatorSequence where Input == DescribeLocalGatewayRouteTablesInput, Output == DescribeLocalGatewayRouteTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTablesPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTable]` + /// - Returns: `[EC2ClientTypes.LocalGatewayRouteTable]` public func localGatewayRouteTables() async throws -> [EC2ClientTypes.LocalGatewayRouteTable] { return try await self.asyncCompactMap { item in item.localGatewayRouteTables } } } - -/// Paginate over `[DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse` public func describeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginated(input: DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput.nextToken, outputKey: \DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse.nextToken, paginationFunction: self.describeLocalGatewayRouteTableVirtualInterfaceGroupAssociations(input:)) } @@ -1494,24 +1450,23 @@ extension DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput: )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTableVirtualInterfaceGroupAssociation]` -/// - Returns: `[EC2ClientTypes.LocalGatewayRouteTableVirtualInterfaceGroupAssociation]` extension PaginatorSequence where Input == DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsInput, Output == DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTableVirtualInterfaceGroupAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTableVirtualInterfaceGroupAssociation]` + /// - Returns: `[EC2ClientTypes.LocalGatewayRouteTableVirtualInterfaceGroupAssociation]` public func localGatewayRouteTableVirtualInterfaceGroupAssociations() async throws -> [EC2ClientTypes.LocalGatewayRouteTableVirtualInterfaceGroupAssociation] { return try await self.asyncCompactMap { item in item.localGatewayRouteTableVirtualInterfaceGroupAssociations } } } - -/// Paginate over `[DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewayRouteTableVpcAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewayRouteTableVpcAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse` public func describeLocalGatewayRouteTableVpcAssociationsPaginated(input: DescribeLocalGatewayRouteTableVpcAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewayRouteTableVpcAssociationsInput.nextToken, outputKey: \DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse.nextToken, paginationFunction: self.describeLocalGatewayRouteTableVpcAssociations(input:)) } @@ -1528,24 +1483,23 @@ extension DescribeLocalGatewayRouteTableVpcAssociationsInput: ClientRuntime.Pagi )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTableVpcAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTableVpcAssociation]` -/// - Returns: `[EC2ClientTypes.LocalGatewayRouteTableVpcAssociation]` extension PaginatorSequence where Input == DescribeLocalGatewayRouteTableVpcAssociationsInput, Output == DescribeLocalGatewayRouteTableVpcAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayRouteTableVpcAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayRouteTableVpcAssociation]` + /// - Returns: `[EC2ClientTypes.LocalGatewayRouteTableVpcAssociation]` public func localGatewayRouteTableVpcAssociations() async throws -> [EC2ClientTypes.LocalGatewayRouteTableVpcAssociation] { return try await self.asyncCompactMap { item in item.localGatewayRouteTableVpcAssociations } } } - -/// Paginate over `[DescribeLocalGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewaysOutputResponse` public func describeLocalGatewaysPaginated(input: DescribeLocalGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewaysInput.nextToken, outputKey: \DescribeLocalGatewaysOutputResponse.nextToken, paginationFunction: self.describeLocalGateways(input:)) } @@ -1562,24 +1516,23 @@ extension DescribeLocalGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGateway]` -/// - Returns: `[EC2ClientTypes.LocalGateway]` extension PaginatorSequence where Input == DescribeLocalGatewaysInput, Output == DescribeLocalGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGateway]` + /// - Returns: `[EC2ClientTypes.LocalGateway]` public func localGateways() async throws -> [EC2ClientTypes.LocalGateway] { return try await self.asyncCompactMap { item in item.localGateways } } } - -/// Paginate over `[DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewayVirtualInterfaceGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewayVirtualInterfaceGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse` public func describeLocalGatewayVirtualInterfaceGroupsPaginated(input: DescribeLocalGatewayVirtualInterfaceGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewayVirtualInterfaceGroupsInput.nextToken, outputKey: \DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse.nextToken, paginationFunction: self.describeLocalGatewayVirtualInterfaceGroups(input:)) } @@ -1596,24 +1549,23 @@ extension DescribeLocalGatewayVirtualInterfaceGroupsInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayVirtualInterfaceGroupsPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayVirtualInterfaceGroup]` -/// - Returns: `[EC2ClientTypes.LocalGatewayVirtualInterfaceGroup]` extension PaginatorSequence where Input == DescribeLocalGatewayVirtualInterfaceGroupsInput, Output == DescribeLocalGatewayVirtualInterfaceGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayVirtualInterfaceGroupsPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayVirtualInterfaceGroup]` + /// - Returns: `[EC2ClientTypes.LocalGatewayVirtualInterfaceGroup]` public func localGatewayVirtualInterfaceGroups() async throws -> [EC2ClientTypes.LocalGatewayVirtualInterfaceGroup] { return try await self.asyncCompactMap { item in item.localGatewayVirtualInterfaceGroups } } } - -/// Paginate over `[DescribeLocalGatewayVirtualInterfacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLocalGatewayVirtualInterfacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayVirtualInterfacesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeLocalGatewayVirtualInterfacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLocalGatewayVirtualInterfacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLocalGatewayVirtualInterfacesOutputResponse` public func describeLocalGatewayVirtualInterfacesPaginated(input: DescribeLocalGatewayVirtualInterfacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLocalGatewayVirtualInterfacesInput.nextToken, outputKey: \DescribeLocalGatewayVirtualInterfacesOutputResponse.nextToken, paginationFunction: self.describeLocalGatewayVirtualInterfaces(input:)) } @@ -1630,24 +1582,23 @@ extension DescribeLocalGatewayVirtualInterfacesInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayVirtualInterfacesPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayVirtualInterface]` -/// - Returns: `[EC2ClientTypes.LocalGatewayVirtualInterface]` extension PaginatorSequence where Input == DescribeLocalGatewayVirtualInterfacesInput, Output == DescribeLocalGatewayVirtualInterfacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLocalGatewayVirtualInterfacesPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayVirtualInterface]` + /// - Returns: `[EC2ClientTypes.LocalGatewayVirtualInterface]` public func localGatewayVirtualInterfaces() async throws -> [EC2ClientTypes.LocalGatewayVirtualInterface] { return try await self.asyncCompactMap { item in item.localGatewayVirtualInterfaces } } } - -/// Paginate over `[DescribeManagedPrefixListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeManagedPrefixListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeManagedPrefixListsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeManagedPrefixListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeManagedPrefixListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeManagedPrefixListsOutputResponse` public func describeManagedPrefixListsPaginated(input: DescribeManagedPrefixListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeManagedPrefixListsInput.nextToken, outputKey: \DescribeManagedPrefixListsOutputResponse.nextToken, paginationFunction: self.describeManagedPrefixLists(input:)) } @@ -1664,24 +1615,23 @@ extension DescribeManagedPrefixListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeManagedPrefixListsPaginated` -/// to access the nested member `[EC2ClientTypes.ManagedPrefixList]` -/// - Returns: `[EC2ClientTypes.ManagedPrefixList]` extension PaginatorSequence where Input == DescribeManagedPrefixListsInput, Output == DescribeManagedPrefixListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeManagedPrefixListsPaginated` + /// to access the nested member `[EC2ClientTypes.ManagedPrefixList]` + /// - Returns: `[EC2ClientTypes.ManagedPrefixList]` public func prefixLists() async throws -> [EC2ClientTypes.ManagedPrefixList] { return try await self.asyncCompactMap { item in item.prefixLists } } } - -/// Paginate over `[DescribeMovingAddressesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMovingAddressesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMovingAddressesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeMovingAddressesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMovingAddressesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMovingAddressesOutputResponse` public func describeMovingAddressesPaginated(input: DescribeMovingAddressesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMovingAddressesInput.nextToken, outputKey: \DescribeMovingAddressesOutputResponse.nextToken, paginationFunction: self.describeMovingAddresses(input:)) } @@ -1698,24 +1648,23 @@ extension DescribeMovingAddressesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMovingAddressesPaginated` -/// to access the nested member `[EC2ClientTypes.MovingAddressStatus]` -/// - Returns: `[EC2ClientTypes.MovingAddressStatus]` extension PaginatorSequence where Input == DescribeMovingAddressesInput, Output == DescribeMovingAddressesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMovingAddressesPaginated` + /// to access the nested member `[EC2ClientTypes.MovingAddressStatus]` + /// - Returns: `[EC2ClientTypes.MovingAddressStatus]` public func movingAddressStatuses() async throws -> [EC2ClientTypes.MovingAddressStatus] { return try await self.asyncCompactMap { item in item.movingAddressStatuses } } } - -/// Paginate over `[DescribeNatGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNatGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNatGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNatGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNatGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNatGatewaysOutputResponse` public func describeNatGatewaysPaginated(input: DescribeNatGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNatGatewaysInput.nextToken, outputKey: \DescribeNatGatewaysOutputResponse.nextToken, paginationFunction: self.describeNatGateways(input:)) } @@ -1732,24 +1681,23 @@ extension DescribeNatGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNatGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.NatGateway]` -/// - Returns: `[EC2ClientTypes.NatGateway]` extension PaginatorSequence where Input == DescribeNatGatewaysInput, Output == DescribeNatGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNatGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.NatGateway]` + /// - Returns: `[EC2ClientTypes.NatGateway]` public func natGateways() async throws -> [EC2ClientTypes.NatGateway] { return try await self.asyncCompactMap { item in item.natGateways } } } - -/// Paginate over `[DescribeNetworkAclsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkAclsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkAclsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkAclsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkAclsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkAclsOutputResponse` public func describeNetworkAclsPaginated(input: DescribeNetworkAclsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkAclsInput.nextToken, outputKey: \DescribeNetworkAclsOutputResponse.nextToken, paginationFunction: self.describeNetworkAcls(input:)) } @@ -1766,24 +1714,23 @@ extension DescribeNetworkAclsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkAclsPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkAcl]` -/// - Returns: `[EC2ClientTypes.NetworkAcl]` extension PaginatorSequence where Input == DescribeNetworkAclsInput, Output == DescribeNetworkAclsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkAclsPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkAcl]` + /// - Returns: `[EC2ClientTypes.NetworkAcl]` public func networkAcls() async throws -> [EC2ClientTypes.NetworkAcl] { return try await self.asyncCompactMap { item in item.networkAcls } } } - -/// Paginate over `[DescribeNetworkInsightsAccessScopeAnalysesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInsightsAccessScopeAnalysesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAccessScopeAnalysesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInsightsAccessScopeAnalysesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInsightsAccessScopeAnalysesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAccessScopeAnalysesOutputResponse` public func describeNetworkInsightsAccessScopeAnalysesPaginated(input: DescribeNetworkInsightsAccessScopeAnalysesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInsightsAccessScopeAnalysesInput.nextToken, outputKey: \DescribeNetworkInsightsAccessScopeAnalysesOutputResponse.nextToken, paginationFunction: self.describeNetworkInsightsAccessScopeAnalyses(input:)) } @@ -1803,24 +1750,23 @@ extension DescribeNetworkInsightsAccessScopeAnalysesInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAccessScopeAnalysesPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInsightsAccessScopeAnalysis]` -/// - Returns: `[EC2ClientTypes.NetworkInsightsAccessScopeAnalysis]` extension PaginatorSequence where Input == DescribeNetworkInsightsAccessScopeAnalysesInput, Output == DescribeNetworkInsightsAccessScopeAnalysesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAccessScopeAnalysesPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInsightsAccessScopeAnalysis]` + /// - Returns: `[EC2ClientTypes.NetworkInsightsAccessScopeAnalysis]` public func networkInsightsAccessScopeAnalyses() async throws -> [EC2ClientTypes.NetworkInsightsAccessScopeAnalysis] { return try await self.asyncCompactMap { item in item.networkInsightsAccessScopeAnalyses } } } - -/// Paginate over `[DescribeNetworkInsightsAccessScopesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInsightsAccessScopesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAccessScopesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInsightsAccessScopesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInsightsAccessScopesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAccessScopesOutputResponse` public func describeNetworkInsightsAccessScopesPaginated(input: DescribeNetworkInsightsAccessScopesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInsightsAccessScopesInput.nextToken, outputKey: \DescribeNetworkInsightsAccessScopesOutputResponse.nextToken, paginationFunction: self.describeNetworkInsightsAccessScopes(input:)) } @@ -1837,24 +1783,23 @@ extension DescribeNetworkInsightsAccessScopesInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAccessScopesPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInsightsAccessScope]` -/// - Returns: `[EC2ClientTypes.NetworkInsightsAccessScope]` extension PaginatorSequence where Input == DescribeNetworkInsightsAccessScopesInput, Output == DescribeNetworkInsightsAccessScopesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAccessScopesPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInsightsAccessScope]` + /// - Returns: `[EC2ClientTypes.NetworkInsightsAccessScope]` public func networkInsightsAccessScopes() async throws -> [EC2ClientTypes.NetworkInsightsAccessScope] { return try await self.asyncCompactMap { item in item.networkInsightsAccessScopes } } } - -/// Paginate over `[DescribeNetworkInsightsAnalysesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInsightsAnalysesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAnalysesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInsightsAnalysesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInsightsAnalysesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsAnalysesOutputResponse` public func describeNetworkInsightsAnalysesPaginated(input: DescribeNetworkInsightsAnalysesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInsightsAnalysesInput.nextToken, outputKey: \DescribeNetworkInsightsAnalysesOutputResponse.nextToken, paginationFunction: self.describeNetworkInsightsAnalyses(input:)) } @@ -1874,24 +1819,23 @@ extension DescribeNetworkInsightsAnalysesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAnalysesPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInsightsAnalysis]` -/// - Returns: `[EC2ClientTypes.NetworkInsightsAnalysis]` extension PaginatorSequence where Input == DescribeNetworkInsightsAnalysesInput, Output == DescribeNetworkInsightsAnalysesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsAnalysesPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInsightsAnalysis]` + /// - Returns: `[EC2ClientTypes.NetworkInsightsAnalysis]` public func networkInsightsAnalyses() async throws -> [EC2ClientTypes.NetworkInsightsAnalysis] { return try await self.asyncCompactMap { item in item.networkInsightsAnalyses } } } - -/// Paginate over `[DescribeNetworkInsightsPathsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInsightsPathsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsPathsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInsightsPathsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInsightsPathsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInsightsPathsOutputResponse` public func describeNetworkInsightsPathsPaginated(input: DescribeNetworkInsightsPathsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInsightsPathsInput.nextToken, outputKey: \DescribeNetworkInsightsPathsOutputResponse.nextToken, paginationFunction: self.describeNetworkInsightsPaths(input:)) } @@ -1908,24 +1852,23 @@ extension DescribeNetworkInsightsPathsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsPathsPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInsightsPath]` -/// - Returns: `[EC2ClientTypes.NetworkInsightsPath]` extension PaginatorSequence where Input == DescribeNetworkInsightsPathsInput, Output == DescribeNetworkInsightsPathsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInsightsPathsPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInsightsPath]` + /// - Returns: `[EC2ClientTypes.NetworkInsightsPath]` public func networkInsightsPaths() async throws -> [EC2ClientTypes.NetworkInsightsPath] { return try await self.asyncCompactMap { item in item.networkInsightsPaths } } } - -/// Paginate over `[DescribeNetworkInterfacePermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInterfacePermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInterfacePermissionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInterfacePermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInterfacePermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInterfacePermissionsOutputResponse` public func describeNetworkInterfacePermissionsPaginated(input: DescribeNetworkInterfacePermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInterfacePermissionsInput.nextToken, outputKey: \DescribeNetworkInterfacePermissionsOutputResponse.nextToken, paginationFunction: self.describeNetworkInterfacePermissions(input:)) } @@ -1941,24 +1884,23 @@ extension DescribeNetworkInterfacePermissionsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInterfacePermissionsPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInterfacePermission]` -/// - Returns: `[EC2ClientTypes.NetworkInterfacePermission]` extension PaginatorSequence where Input == DescribeNetworkInterfacePermissionsInput, Output == DescribeNetworkInterfacePermissionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInterfacePermissionsPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInterfacePermission]` + /// - Returns: `[EC2ClientTypes.NetworkInterfacePermission]` public func networkInterfacePermissions() async throws -> [EC2ClientTypes.NetworkInterfacePermission] { return try await self.asyncCompactMap { item in item.networkInterfacePermissions } } } - -/// Paginate over `[DescribeNetworkInterfacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNetworkInterfacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInterfacesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeNetworkInterfacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNetworkInterfacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNetworkInterfacesOutputResponse` public func describeNetworkInterfacesPaginated(input: DescribeNetworkInterfacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNetworkInterfacesInput.nextToken, outputKey: \DescribeNetworkInterfacesOutputResponse.nextToken, paginationFunction: self.describeNetworkInterfaces(input:)) } @@ -1975,24 +1917,23 @@ extension DescribeNetworkInterfacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNetworkInterfacesPaginated` -/// to access the nested member `[EC2ClientTypes.NetworkInterface]` -/// - Returns: `[EC2ClientTypes.NetworkInterface]` extension PaginatorSequence where Input == DescribeNetworkInterfacesInput, Output == DescribeNetworkInterfacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNetworkInterfacesPaginated` + /// to access the nested member `[EC2ClientTypes.NetworkInterface]` + /// - Returns: `[EC2ClientTypes.NetworkInterface]` public func networkInterfaces() async throws -> [EC2ClientTypes.NetworkInterface] { return try await self.asyncCompactMap { item in item.networkInterfaces } } } - -/// Paginate over `[DescribePrefixListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePrefixListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePrefixListsOutputResponse` extension EC2Client { + /// Paginate over `[DescribePrefixListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePrefixListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePrefixListsOutputResponse` public func describePrefixListsPaginated(input: DescribePrefixListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePrefixListsInput.nextToken, outputKey: \DescribePrefixListsOutputResponse.nextToken, paginationFunction: self.describePrefixLists(input:)) } @@ -2009,24 +1950,23 @@ extension DescribePrefixListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePrefixListsPaginated` -/// to access the nested member `[EC2ClientTypes.PrefixList]` -/// - Returns: `[EC2ClientTypes.PrefixList]` extension PaginatorSequence where Input == DescribePrefixListsInput, Output == DescribePrefixListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePrefixListsPaginated` + /// to access the nested member `[EC2ClientTypes.PrefixList]` + /// - Returns: `[EC2ClientTypes.PrefixList]` public func prefixLists() async throws -> [EC2ClientTypes.PrefixList] { return try await self.asyncCompactMap { item in item.prefixLists } } } - -/// Paginate over `[DescribePrincipalIdFormatOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePrincipalIdFormatInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePrincipalIdFormatOutputResponse` extension EC2Client { + /// Paginate over `[DescribePrincipalIdFormatOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePrincipalIdFormatInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePrincipalIdFormatOutputResponse` public func describePrincipalIdFormatPaginated(input: DescribePrincipalIdFormatInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePrincipalIdFormatInput.nextToken, outputKey: \DescribePrincipalIdFormatOutputResponse.nextToken, paginationFunction: self.describePrincipalIdFormat(input:)) } @@ -2042,24 +1982,23 @@ extension DescribePrincipalIdFormatInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePrincipalIdFormatPaginated` -/// to access the nested member `[EC2ClientTypes.PrincipalIdFormat]` -/// - Returns: `[EC2ClientTypes.PrincipalIdFormat]` extension PaginatorSequence where Input == DescribePrincipalIdFormatInput, Output == DescribePrincipalIdFormatOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePrincipalIdFormatPaginated` + /// to access the nested member `[EC2ClientTypes.PrincipalIdFormat]` + /// - Returns: `[EC2ClientTypes.PrincipalIdFormat]` public func principals() async throws -> [EC2ClientTypes.PrincipalIdFormat] { return try await self.asyncCompactMap { item in item.principals } } } - -/// Paginate over `[DescribePublicIpv4PoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePublicIpv4PoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePublicIpv4PoolsOutputResponse` extension EC2Client { + /// Paginate over `[DescribePublicIpv4PoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePublicIpv4PoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePublicIpv4PoolsOutputResponse` public func describePublicIpv4PoolsPaginated(input: DescribePublicIpv4PoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePublicIpv4PoolsInput.nextToken, outputKey: \DescribePublicIpv4PoolsOutputResponse.nextToken, paginationFunction: self.describePublicIpv4Pools(input:)) } @@ -2075,24 +2014,23 @@ extension DescribePublicIpv4PoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePublicIpv4PoolsPaginated` -/// to access the nested member `[EC2ClientTypes.PublicIpv4Pool]` -/// - Returns: `[EC2ClientTypes.PublicIpv4Pool]` extension PaginatorSequence where Input == DescribePublicIpv4PoolsInput, Output == DescribePublicIpv4PoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePublicIpv4PoolsPaginated` + /// to access the nested member `[EC2ClientTypes.PublicIpv4Pool]` + /// - Returns: `[EC2ClientTypes.PublicIpv4Pool]` public func publicIpv4Pools() async throws -> [EC2ClientTypes.PublicIpv4Pool] { return try await self.asyncCompactMap { item in item.publicIpv4Pools } } } - -/// Paginate over `[DescribeReplaceRootVolumeTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplaceRootVolumeTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplaceRootVolumeTasksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeReplaceRootVolumeTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplaceRootVolumeTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplaceRootVolumeTasksOutputResponse` public func describeReplaceRootVolumeTasksPaginated(input: DescribeReplaceRootVolumeTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplaceRootVolumeTasksInput.nextToken, outputKey: \DescribeReplaceRootVolumeTasksOutputResponse.nextToken, paginationFunction: self.describeReplaceRootVolumeTasks(input:)) } @@ -2109,24 +2047,23 @@ extension DescribeReplaceRootVolumeTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReplaceRootVolumeTasksPaginated` -/// to access the nested member `[EC2ClientTypes.ReplaceRootVolumeTask]` -/// - Returns: `[EC2ClientTypes.ReplaceRootVolumeTask]` extension PaginatorSequence where Input == DescribeReplaceRootVolumeTasksInput, Output == DescribeReplaceRootVolumeTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReplaceRootVolumeTasksPaginated` + /// to access the nested member `[EC2ClientTypes.ReplaceRootVolumeTask]` + /// - Returns: `[EC2ClientTypes.ReplaceRootVolumeTask]` public func replaceRootVolumeTasks() async throws -> [EC2ClientTypes.ReplaceRootVolumeTask] { return try await self.asyncCompactMap { item in item.replaceRootVolumeTasks } } } - -/// Paginate over `[DescribeReservedInstancesModificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedInstancesModificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesModificationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeReservedInstancesModificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedInstancesModificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesModificationsOutputResponse` public func describeReservedInstancesModificationsPaginated(input: DescribeReservedInstancesModificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedInstancesModificationsInput.nextToken, outputKey: \DescribeReservedInstancesModificationsOutputResponse.nextToken, paginationFunction: self.describeReservedInstancesModifications(input:)) } @@ -2141,24 +2078,23 @@ extension DescribeReservedInstancesModificationsInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedInstancesModificationsPaginated` -/// to access the nested member `[EC2ClientTypes.ReservedInstancesModification]` -/// - Returns: `[EC2ClientTypes.ReservedInstancesModification]` extension PaginatorSequence where Input == DescribeReservedInstancesModificationsInput, Output == DescribeReservedInstancesModificationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedInstancesModificationsPaginated` + /// to access the nested member `[EC2ClientTypes.ReservedInstancesModification]` + /// - Returns: `[EC2ClientTypes.ReservedInstancesModification]` public func reservedInstancesModifications() async throws -> [EC2ClientTypes.ReservedInstancesModification] { return try await self.asyncCompactMap { item in item.reservedInstancesModifications } } } - -/// Paginate over `[DescribeReservedInstancesOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedInstancesOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesOfferingsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeReservedInstancesOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedInstancesOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesOfferingsOutputResponse` public func describeReservedInstancesOfferingsPaginated(input: DescribeReservedInstancesOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedInstancesOfferingsInput.nextToken, outputKey: \DescribeReservedInstancesOfferingsOutputResponse.nextToken, paginationFunction: self.describeReservedInstancesOfferings(input:)) } @@ -2185,24 +2121,23 @@ extension DescribeReservedInstancesOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedInstancesOfferingsPaginated` -/// to access the nested member `[EC2ClientTypes.ReservedInstancesOffering]` -/// - Returns: `[EC2ClientTypes.ReservedInstancesOffering]` extension PaginatorSequence where Input == DescribeReservedInstancesOfferingsInput, Output == DescribeReservedInstancesOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedInstancesOfferingsPaginated` + /// to access the nested member `[EC2ClientTypes.ReservedInstancesOffering]` + /// - Returns: `[EC2ClientTypes.ReservedInstancesOffering]` public func reservedInstancesOfferings() async throws -> [EC2ClientTypes.ReservedInstancesOffering] { return try await self.asyncCompactMap { item in item.reservedInstancesOfferings } } } - -/// Paginate over `[DescribeRouteTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRouteTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRouteTablesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeRouteTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRouteTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRouteTablesOutputResponse` public func describeRouteTablesPaginated(input: DescribeRouteTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRouteTablesInput.nextToken, outputKey: \DescribeRouteTablesOutputResponse.nextToken, paginationFunction: self.describeRouteTables(input:)) } @@ -2219,24 +2154,23 @@ extension DescribeRouteTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRouteTablesPaginated` -/// to access the nested member `[EC2ClientTypes.RouteTable]` -/// - Returns: `[EC2ClientTypes.RouteTable]` extension PaginatorSequence where Input == DescribeRouteTablesInput, Output == DescribeRouteTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRouteTablesPaginated` + /// to access the nested member `[EC2ClientTypes.RouteTable]` + /// - Returns: `[EC2ClientTypes.RouteTable]` public func routeTables() async throws -> [EC2ClientTypes.RouteTable] { return try await self.asyncCompactMap { item in item.routeTables } } } - -/// Paginate over `[DescribeScheduledInstanceAvailabilityOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduledInstanceAvailabilityInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledInstanceAvailabilityOutputResponse` extension EC2Client { + /// Paginate over `[DescribeScheduledInstanceAvailabilityOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduledInstanceAvailabilityInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledInstanceAvailabilityOutputResponse` public func describeScheduledInstanceAvailabilityPaginated(input: DescribeScheduledInstanceAvailabilityInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduledInstanceAvailabilityInput.nextToken, outputKey: \DescribeScheduledInstanceAvailabilityOutputResponse.nextToken, paginationFunction: self.describeScheduledInstanceAvailability(input:)) } @@ -2256,24 +2190,23 @@ extension DescribeScheduledInstanceAvailabilityInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScheduledInstanceAvailabilityPaginated` -/// to access the nested member `[EC2ClientTypes.ScheduledInstanceAvailability]` -/// - Returns: `[EC2ClientTypes.ScheduledInstanceAvailability]` extension PaginatorSequence where Input == DescribeScheduledInstanceAvailabilityInput, Output == DescribeScheduledInstanceAvailabilityOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScheduledInstanceAvailabilityPaginated` + /// to access the nested member `[EC2ClientTypes.ScheduledInstanceAvailability]` + /// - Returns: `[EC2ClientTypes.ScheduledInstanceAvailability]` public func scheduledInstanceAvailabilitySet() async throws -> [EC2ClientTypes.ScheduledInstanceAvailability] { return try await self.asyncCompactMap { item in item.scheduledInstanceAvailabilitySet } } } - -/// Paginate over `[DescribeScheduledInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduledInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledInstancesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeScheduledInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduledInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledInstancesOutputResponse` public func describeScheduledInstancesPaginated(input: DescribeScheduledInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduledInstancesInput.nextToken, outputKey: \DescribeScheduledInstancesOutputResponse.nextToken, paginationFunction: self.describeScheduledInstances(input:)) } @@ -2291,24 +2224,23 @@ extension DescribeScheduledInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScheduledInstancesPaginated` -/// to access the nested member `[EC2ClientTypes.ScheduledInstance]` -/// - Returns: `[EC2ClientTypes.ScheduledInstance]` extension PaginatorSequence where Input == DescribeScheduledInstancesInput, Output == DescribeScheduledInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScheduledInstancesPaginated` + /// to access the nested member `[EC2ClientTypes.ScheduledInstance]` + /// - Returns: `[EC2ClientTypes.ScheduledInstance]` public func scheduledInstanceSet() async throws -> [EC2ClientTypes.ScheduledInstance] { return try await self.asyncCompactMap { item in item.scheduledInstanceSet } } } - -/// Paginate over `[DescribeSecurityGroupRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSecurityGroupRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSecurityGroupRulesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSecurityGroupRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSecurityGroupRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSecurityGroupRulesOutputResponse` public func describeSecurityGroupRulesPaginated(input: DescribeSecurityGroupRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSecurityGroupRulesInput.nextToken, outputKey: \DescribeSecurityGroupRulesOutputResponse.nextToken, paginationFunction: self.describeSecurityGroupRules(input:)) } @@ -2325,24 +2257,23 @@ extension DescribeSecurityGroupRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSecurityGroupRulesPaginated` -/// to access the nested member `[EC2ClientTypes.SecurityGroupRule]` -/// - Returns: `[EC2ClientTypes.SecurityGroupRule]` extension PaginatorSequence where Input == DescribeSecurityGroupRulesInput, Output == DescribeSecurityGroupRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSecurityGroupRulesPaginated` + /// to access the nested member `[EC2ClientTypes.SecurityGroupRule]` + /// - Returns: `[EC2ClientTypes.SecurityGroupRule]` public func securityGroupRules() async throws -> [EC2ClientTypes.SecurityGroupRule] { return try await self.asyncCompactMap { item in item.securityGroupRules } } } - -/// Paginate over `[DescribeSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSecurityGroupsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSecurityGroupsOutputResponse` public func describeSecurityGroupsPaginated(input: DescribeSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSecurityGroupsInput.nextToken, outputKey: \DescribeSecurityGroupsOutputResponse.nextToken, paginationFunction: self.describeSecurityGroups(input:)) } @@ -2360,24 +2291,23 @@ extension DescribeSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSecurityGroupsPaginated` -/// to access the nested member `[EC2ClientTypes.SecurityGroup]` -/// - Returns: `[EC2ClientTypes.SecurityGroup]` extension PaginatorSequence where Input == DescribeSecurityGroupsInput, Output == DescribeSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSecurityGroupsPaginated` + /// to access the nested member `[EC2ClientTypes.SecurityGroup]` + /// - Returns: `[EC2ClientTypes.SecurityGroup]` public func securityGroups() async throws -> [EC2ClientTypes.SecurityGroup] { return try await self.asyncCompactMap { item in item.securityGroups } } } - -/// Paginate over `[DescribeSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` public func describeSnapshotsPaginated(input: DescribeSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotsInput.nextToken, outputKey: \DescribeSnapshotsOutputResponse.nextToken, paginationFunction: self.describeSnapshots(input:)) } @@ -2396,24 +2326,23 @@ extension DescribeSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` -/// to access the nested member `[EC2ClientTypes.Snapshot]` -/// - Returns: `[EC2ClientTypes.Snapshot]` extension PaginatorSequence where Input == DescribeSnapshotsInput, Output == DescribeSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` + /// to access the nested member `[EC2ClientTypes.Snapshot]` + /// - Returns: `[EC2ClientTypes.Snapshot]` public func snapshots() async throws -> [EC2ClientTypes.Snapshot] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[DescribeSnapshotTierStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotTierStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotTierStatusOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSnapshotTierStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotTierStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotTierStatusOutputResponse` public func describeSnapshotTierStatusPaginated(input: DescribeSnapshotTierStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotTierStatusInput.nextToken, outputKey: \DescribeSnapshotTierStatusOutputResponse.nextToken, paginationFunction: self.describeSnapshotTierStatus(input:)) } @@ -2429,24 +2358,23 @@ extension DescribeSnapshotTierStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotTierStatusPaginated` -/// to access the nested member `[EC2ClientTypes.SnapshotTierStatus]` -/// - Returns: `[EC2ClientTypes.SnapshotTierStatus]` extension PaginatorSequence where Input == DescribeSnapshotTierStatusInput, Output == DescribeSnapshotTierStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotTierStatusPaginated` + /// to access the nested member `[EC2ClientTypes.SnapshotTierStatus]` + /// - Returns: `[EC2ClientTypes.SnapshotTierStatus]` public func snapshotTierStatuses() async throws -> [EC2ClientTypes.SnapshotTierStatus] { return try await self.asyncCompactMap { item in item.snapshotTierStatuses } } } - -/// Paginate over `[DescribeSpotFleetRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSpotFleetRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotFleetRequestsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSpotFleetRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSpotFleetRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotFleetRequestsOutputResponse` public func describeSpotFleetRequestsPaginated(input: DescribeSpotFleetRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSpotFleetRequestsInput.nextToken, outputKey: \DescribeSpotFleetRequestsOutputResponse.nextToken, paginationFunction: self.describeSpotFleetRequests(input:)) } @@ -2462,24 +2390,23 @@ extension DescribeSpotFleetRequestsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSpotFleetRequestsPaginated` -/// to access the nested member `[EC2ClientTypes.SpotFleetRequestConfig]` -/// - Returns: `[EC2ClientTypes.SpotFleetRequestConfig]` extension PaginatorSequence where Input == DescribeSpotFleetRequestsInput, Output == DescribeSpotFleetRequestsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSpotFleetRequestsPaginated` + /// to access the nested member `[EC2ClientTypes.SpotFleetRequestConfig]` + /// - Returns: `[EC2ClientTypes.SpotFleetRequestConfig]` public func spotFleetRequestConfigs() async throws -> [EC2ClientTypes.SpotFleetRequestConfig] { return try await self.asyncCompactMap { item in item.spotFleetRequestConfigs } } } - -/// Paginate over `[DescribeSpotInstanceRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSpotInstanceRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotInstanceRequestsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSpotInstanceRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSpotInstanceRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotInstanceRequestsOutputResponse` public func describeSpotInstanceRequestsPaginated(input: DescribeSpotInstanceRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSpotInstanceRequestsInput.nextToken, outputKey: \DescribeSpotInstanceRequestsOutputResponse.nextToken, paginationFunction: self.describeSpotInstanceRequests(input:)) } @@ -2496,24 +2423,23 @@ extension DescribeSpotInstanceRequestsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSpotInstanceRequestsPaginated` -/// to access the nested member `[EC2ClientTypes.SpotInstanceRequest]` -/// - Returns: `[EC2ClientTypes.SpotInstanceRequest]` extension PaginatorSequence where Input == DescribeSpotInstanceRequestsInput, Output == DescribeSpotInstanceRequestsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSpotInstanceRequestsPaginated` + /// to access the nested member `[EC2ClientTypes.SpotInstanceRequest]` + /// - Returns: `[EC2ClientTypes.SpotInstanceRequest]` public func spotInstanceRequests() async throws -> [EC2ClientTypes.SpotInstanceRequest] { return try await self.asyncCompactMap { item in item.spotInstanceRequests } } } - -/// Paginate over `[DescribeSpotPriceHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSpotPriceHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotPriceHistoryOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSpotPriceHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSpotPriceHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSpotPriceHistoryOutputResponse` public func describeSpotPriceHistoryPaginated(input: DescribeSpotPriceHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSpotPriceHistoryInput.nextToken, outputKey: \DescribeSpotPriceHistoryOutputResponse.nextToken, paginationFunction: self.describeSpotPriceHistory(input:)) } @@ -2534,24 +2460,23 @@ extension DescribeSpotPriceHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSpotPriceHistoryPaginated` -/// to access the nested member `[EC2ClientTypes.SpotPrice]` -/// - Returns: `[EC2ClientTypes.SpotPrice]` extension PaginatorSequence where Input == DescribeSpotPriceHistoryInput, Output == DescribeSpotPriceHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSpotPriceHistoryPaginated` + /// to access the nested member `[EC2ClientTypes.SpotPrice]` + /// - Returns: `[EC2ClientTypes.SpotPrice]` public func spotPriceHistory() async throws -> [EC2ClientTypes.SpotPrice] { return try await self.asyncCompactMap { item in item.spotPriceHistory } } } - -/// Paginate over `[DescribeStaleSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStaleSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStaleSecurityGroupsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeStaleSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStaleSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStaleSecurityGroupsOutputResponse` public func describeStaleSecurityGroupsPaginated(input: DescribeStaleSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStaleSecurityGroupsInput.nextToken, outputKey: \DescribeStaleSecurityGroupsOutputResponse.nextToken, paginationFunction: self.describeStaleSecurityGroups(input:)) } @@ -2567,24 +2492,23 @@ extension DescribeStaleSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStaleSecurityGroupsPaginated` -/// to access the nested member `[EC2ClientTypes.StaleSecurityGroup]` -/// - Returns: `[EC2ClientTypes.StaleSecurityGroup]` extension PaginatorSequence where Input == DescribeStaleSecurityGroupsInput, Output == DescribeStaleSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStaleSecurityGroupsPaginated` + /// to access the nested member `[EC2ClientTypes.StaleSecurityGroup]` + /// - Returns: `[EC2ClientTypes.StaleSecurityGroup]` public func staleSecurityGroupSet() async throws -> [EC2ClientTypes.StaleSecurityGroup] { return try await self.asyncCompactMap { item in item.staleSecurityGroupSet } } } - -/// Paginate over `[DescribeStoreImageTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStoreImageTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStoreImageTasksOutputResponse` extension EC2Client { + /// Paginate over `[DescribeStoreImageTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStoreImageTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStoreImageTasksOutputResponse` public func describeStoreImageTasksPaginated(input: DescribeStoreImageTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStoreImageTasksInput.nextToken, outputKey: \DescribeStoreImageTasksOutputResponse.nextToken, paginationFunction: self.describeStoreImageTasks(input:)) } @@ -2601,24 +2525,23 @@ extension DescribeStoreImageTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStoreImageTasksPaginated` -/// to access the nested member `[EC2ClientTypes.StoreImageTaskResult]` -/// - Returns: `[EC2ClientTypes.StoreImageTaskResult]` extension PaginatorSequence where Input == DescribeStoreImageTasksInput, Output == DescribeStoreImageTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStoreImageTasksPaginated` + /// to access the nested member `[EC2ClientTypes.StoreImageTaskResult]` + /// - Returns: `[EC2ClientTypes.StoreImageTaskResult]` public func storeImageTaskResults() async throws -> [EC2ClientTypes.StoreImageTaskResult] { return try await self.asyncCompactMap { item in item.storeImageTaskResults } } } - -/// Paginate over `[DescribeSubnetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSubnetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSubnetsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeSubnetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSubnetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSubnetsOutputResponse` public func describeSubnetsPaginated(input: DescribeSubnetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSubnetsInput.nextToken, outputKey: \DescribeSubnetsOutputResponse.nextToken, paginationFunction: self.describeSubnets(input:)) } @@ -2635,24 +2558,23 @@ extension DescribeSubnetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSubnetsPaginated` -/// to access the nested member `[EC2ClientTypes.Subnet]` -/// - Returns: `[EC2ClientTypes.Subnet]` extension PaginatorSequence where Input == DescribeSubnetsInput, Output == DescribeSubnetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSubnetsPaginated` + /// to access the nested member `[EC2ClientTypes.Subnet]` + /// - Returns: `[EC2ClientTypes.Subnet]` public func subnets() async throws -> [EC2ClientTypes.Subnet] { return try await self.asyncCompactMap { item in item.subnets } } } - -/// Paginate over `[DescribeTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` public func describeTagsPaginated(input: DescribeTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTagsInput.nextToken, outputKey: \DescribeTagsOutputResponse.nextToken, paginationFunction: self.describeTags(input:)) } @@ -2668,24 +2590,23 @@ extension DescribeTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` -/// to access the nested member `[EC2ClientTypes.TagDescription]` -/// - Returns: `[EC2ClientTypes.TagDescription]` extension PaginatorSequence where Input == DescribeTagsInput, Output == DescribeTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` + /// to access the nested member `[EC2ClientTypes.TagDescription]` + /// - Returns: `[EC2ClientTypes.TagDescription]` public func tags() async throws -> [EC2ClientTypes.TagDescription] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[DescribeTrafficMirrorFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTrafficMirrorFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorFiltersOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTrafficMirrorFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTrafficMirrorFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorFiltersOutputResponse` public func describeTrafficMirrorFiltersPaginated(input: DescribeTrafficMirrorFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTrafficMirrorFiltersInput.nextToken, outputKey: \DescribeTrafficMirrorFiltersOutputResponse.nextToken, paginationFunction: self.describeTrafficMirrorFilters(input:)) } @@ -2702,24 +2623,23 @@ extension DescribeTrafficMirrorFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorFiltersPaginated` -/// to access the nested member `[EC2ClientTypes.TrafficMirrorFilter]` -/// - Returns: `[EC2ClientTypes.TrafficMirrorFilter]` extension PaginatorSequence where Input == DescribeTrafficMirrorFiltersInput, Output == DescribeTrafficMirrorFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorFiltersPaginated` + /// to access the nested member `[EC2ClientTypes.TrafficMirrorFilter]` + /// - Returns: `[EC2ClientTypes.TrafficMirrorFilter]` public func trafficMirrorFilters() async throws -> [EC2ClientTypes.TrafficMirrorFilter] { return try await self.asyncCompactMap { item in item.trafficMirrorFilters } } } - -/// Paginate over `[DescribeTrafficMirrorSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTrafficMirrorSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorSessionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTrafficMirrorSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTrafficMirrorSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorSessionsOutputResponse` public func describeTrafficMirrorSessionsPaginated(input: DescribeTrafficMirrorSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTrafficMirrorSessionsInput.nextToken, outputKey: \DescribeTrafficMirrorSessionsOutputResponse.nextToken, paginationFunction: self.describeTrafficMirrorSessions(input:)) } @@ -2736,24 +2656,23 @@ extension DescribeTrafficMirrorSessionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorSessionsPaginated` -/// to access the nested member `[EC2ClientTypes.TrafficMirrorSession]` -/// - Returns: `[EC2ClientTypes.TrafficMirrorSession]` extension PaginatorSequence where Input == DescribeTrafficMirrorSessionsInput, Output == DescribeTrafficMirrorSessionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorSessionsPaginated` + /// to access the nested member `[EC2ClientTypes.TrafficMirrorSession]` + /// - Returns: `[EC2ClientTypes.TrafficMirrorSession]` public func trafficMirrorSessions() async throws -> [EC2ClientTypes.TrafficMirrorSession] { return try await self.asyncCompactMap { item in item.trafficMirrorSessions } } } - -/// Paginate over `[DescribeTrafficMirrorTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTrafficMirrorTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorTargetsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTrafficMirrorTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTrafficMirrorTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTrafficMirrorTargetsOutputResponse` public func describeTrafficMirrorTargetsPaginated(input: DescribeTrafficMirrorTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTrafficMirrorTargetsInput.nextToken, outputKey: \DescribeTrafficMirrorTargetsOutputResponse.nextToken, paginationFunction: self.describeTrafficMirrorTargets(input:)) } @@ -2770,24 +2689,23 @@ extension DescribeTrafficMirrorTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorTargetsPaginated` -/// to access the nested member `[EC2ClientTypes.TrafficMirrorTarget]` -/// - Returns: `[EC2ClientTypes.TrafficMirrorTarget]` extension PaginatorSequence where Input == DescribeTrafficMirrorTargetsInput, Output == DescribeTrafficMirrorTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTrafficMirrorTargetsPaginated` + /// to access the nested member `[EC2ClientTypes.TrafficMirrorTarget]` + /// - Returns: `[EC2ClientTypes.TrafficMirrorTarget]` public func trafficMirrorTargets() async throws -> [EC2ClientTypes.TrafficMirrorTarget] { return try await self.asyncCompactMap { item in item.trafficMirrorTargets } } } - -/// Paginate over `[DescribeTransitGatewayAttachmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayAttachmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayAttachmentsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayAttachmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayAttachmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayAttachmentsOutputResponse` public func describeTransitGatewayAttachmentsPaginated(input: DescribeTransitGatewayAttachmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayAttachmentsInput.nextToken, outputKey: \DescribeTransitGatewayAttachmentsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayAttachments(input:)) } @@ -2804,24 +2722,23 @@ extension DescribeTransitGatewayAttachmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayAttachmentsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayAttachment]` -/// - Returns: `[EC2ClientTypes.TransitGatewayAttachment]` extension PaginatorSequence where Input == DescribeTransitGatewayAttachmentsInput, Output == DescribeTransitGatewayAttachmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayAttachmentsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayAttachment]` + /// - Returns: `[EC2ClientTypes.TransitGatewayAttachment]` public func transitGatewayAttachments() async throws -> [EC2ClientTypes.TransitGatewayAttachment] { return try await self.asyncCompactMap { item in item.transitGatewayAttachments } } } - -/// Paginate over `[DescribeTransitGatewayConnectPeersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayConnectPeersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayConnectPeersOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayConnectPeersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayConnectPeersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayConnectPeersOutputResponse` public func describeTransitGatewayConnectPeersPaginated(input: DescribeTransitGatewayConnectPeersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayConnectPeersInput.nextToken, outputKey: \DescribeTransitGatewayConnectPeersOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayConnectPeers(input:)) } @@ -2838,24 +2755,23 @@ extension DescribeTransitGatewayConnectPeersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayConnectPeersPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayConnectPeer]` -/// - Returns: `[EC2ClientTypes.TransitGatewayConnectPeer]` extension PaginatorSequence where Input == DescribeTransitGatewayConnectPeersInput, Output == DescribeTransitGatewayConnectPeersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayConnectPeersPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayConnectPeer]` + /// - Returns: `[EC2ClientTypes.TransitGatewayConnectPeer]` public func transitGatewayConnectPeers() async throws -> [EC2ClientTypes.TransitGatewayConnectPeer] { return try await self.asyncCompactMap { item in item.transitGatewayConnectPeers } } } - -/// Paginate over `[DescribeTransitGatewayConnectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayConnectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayConnectsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayConnectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayConnectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayConnectsOutputResponse` public func describeTransitGatewayConnectsPaginated(input: DescribeTransitGatewayConnectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayConnectsInput.nextToken, outputKey: \DescribeTransitGatewayConnectsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayConnects(input:)) } @@ -2872,24 +2788,23 @@ extension DescribeTransitGatewayConnectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayConnectsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayConnect]` -/// - Returns: `[EC2ClientTypes.TransitGatewayConnect]` extension PaginatorSequence where Input == DescribeTransitGatewayConnectsInput, Output == DescribeTransitGatewayConnectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayConnectsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayConnect]` + /// - Returns: `[EC2ClientTypes.TransitGatewayConnect]` public func transitGatewayConnects() async throws -> [EC2ClientTypes.TransitGatewayConnect] { return try await self.asyncCompactMap { item in item.transitGatewayConnects } } } - -/// Paginate over `[DescribeTransitGatewayMulticastDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayMulticastDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayMulticastDomainsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayMulticastDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayMulticastDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayMulticastDomainsOutputResponse` public func describeTransitGatewayMulticastDomainsPaginated(input: DescribeTransitGatewayMulticastDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayMulticastDomainsInput.nextToken, outputKey: \DescribeTransitGatewayMulticastDomainsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayMulticastDomains(input:)) } @@ -2906,24 +2821,23 @@ extension DescribeTransitGatewayMulticastDomainsInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayMulticastDomainsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastDomain]` -/// - Returns: `[EC2ClientTypes.TransitGatewayMulticastDomain]` extension PaginatorSequence where Input == DescribeTransitGatewayMulticastDomainsInput, Output == DescribeTransitGatewayMulticastDomainsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayMulticastDomainsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastDomain]` + /// - Returns: `[EC2ClientTypes.TransitGatewayMulticastDomain]` public func transitGatewayMulticastDomains() async throws -> [EC2ClientTypes.TransitGatewayMulticastDomain] { return try await self.asyncCompactMap { item in item.transitGatewayMulticastDomains } } } - -/// Paginate over `[DescribeTransitGatewayPeeringAttachmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayPeeringAttachmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayPeeringAttachmentsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayPeeringAttachmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayPeeringAttachmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayPeeringAttachmentsOutputResponse` public func describeTransitGatewayPeeringAttachmentsPaginated(input: DescribeTransitGatewayPeeringAttachmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayPeeringAttachmentsInput.nextToken, outputKey: \DescribeTransitGatewayPeeringAttachmentsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayPeeringAttachments(input:)) } @@ -2940,24 +2854,23 @@ extension DescribeTransitGatewayPeeringAttachmentsInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayPeeringAttachmentsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayPeeringAttachment]` -/// - Returns: `[EC2ClientTypes.TransitGatewayPeeringAttachment]` extension PaginatorSequence where Input == DescribeTransitGatewayPeeringAttachmentsInput, Output == DescribeTransitGatewayPeeringAttachmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayPeeringAttachmentsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayPeeringAttachment]` + /// - Returns: `[EC2ClientTypes.TransitGatewayPeeringAttachment]` public func transitGatewayPeeringAttachments() async throws -> [EC2ClientTypes.TransitGatewayPeeringAttachment] { return try await self.asyncCompactMap { item in item.transitGatewayPeeringAttachments } } } - -/// Paginate over `[DescribeTransitGatewayPolicyTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayPolicyTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayPolicyTablesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayPolicyTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayPolicyTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayPolicyTablesOutputResponse` public func describeTransitGatewayPolicyTablesPaginated(input: DescribeTransitGatewayPolicyTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayPolicyTablesInput.nextToken, outputKey: \DescribeTransitGatewayPolicyTablesOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayPolicyTables(input:)) } @@ -2974,24 +2887,23 @@ extension DescribeTransitGatewayPolicyTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayPolicyTablesPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayPolicyTable]` -/// - Returns: `[EC2ClientTypes.TransitGatewayPolicyTable]` extension PaginatorSequence where Input == DescribeTransitGatewayPolicyTablesInput, Output == DescribeTransitGatewayPolicyTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayPolicyTablesPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayPolicyTable]` + /// - Returns: `[EC2ClientTypes.TransitGatewayPolicyTable]` public func transitGatewayPolicyTables() async throws -> [EC2ClientTypes.TransitGatewayPolicyTable] { return try await self.asyncCompactMap { item in item.transitGatewayPolicyTables } } } - -/// Paginate over `[DescribeTransitGatewayRouteTableAnnouncementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayRouteTableAnnouncementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayRouteTableAnnouncementsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayRouteTableAnnouncementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayRouteTableAnnouncementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayRouteTableAnnouncementsOutputResponse` public func describeTransitGatewayRouteTableAnnouncementsPaginated(input: DescribeTransitGatewayRouteTableAnnouncementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayRouteTableAnnouncementsInput.nextToken, outputKey: \DescribeTransitGatewayRouteTableAnnouncementsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayRouteTableAnnouncements(input:)) } @@ -3008,24 +2920,23 @@ extension DescribeTransitGatewayRouteTableAnnouncementsInput: ClientRuntime.Pagi )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayRouteTableAnnouncementsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTableAnnouncement]` -/// - Returns: `[EC2ClientTypes.TransitGatewayRouteTableAnnouncement]` extension PaginatorSequence where Input == DescribeTransitGatewayRouteTableAnnouncementsInput, Output == DescribeTransitGatewayRouteTableAnnouncementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayRouteTableAnnouncementsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTableAnnouncement]` + /// - Returns: `[EC2ClientTypes.TransitGatewayRouteTableAnnouncement]` public func transitGatewayRouteTableAnnouncements() async throws -> [EC2ClientTypes.TransitGatewayRouteTableAnnouncement] { return try await self.asyncCompactMap { item in item.transitGatewayRouteTableAnnouncements } } } - -/// Paginate over `[DescribeTransitGatewayRouteTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayRouteTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayRouteTablesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayRouteTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayRouteTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayRouteTablesOutputResponse` public func describeTransitGatewayRouteTablesPaginated(input: DescribeTransitGatewayRouteTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayRouteTablesInput.nextToken, outputKey: \DescribeTransitGatewayRouteTablesOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayRouteTables(input:)) } @@ -3042,24 +2953,23 @@ extension DescribeTransitGatewayRouteTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayRouteTablesPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTable]` -/// - Returns: `[EC2ClientTypes.TransitGatewayRouteTable]` extension PaginatorSequence where Input == DescribeTransitGatewayRouteTablesInput, Output == DescribeTransitGatewayRouteTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayRouteTablesPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTable]` + /// - Returns: `[EC2ClientTypes.TransitGatewayRouteTable]` public func transitGatewayRouteTables() async throws -> [EC2ClientTypes.TransitGatewayRouteTable] { return try await self.asyncCompactMap { item in item.transitGatewayRouteTables } } } - -/// Paginate over `[DescribeTransitGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewaysOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewaysOutputResponse` public func describeTransitGatewaysPaginated(input: DescribeTransitGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewaysInput.nextToken, outputKey: \DescribeTransitGatewaysOutputResponse.nextToken, paginationFunction: self.describeTransitGateways(input:)) } @@ -3076,24 +2986,23 @@ extension DescribeTransitGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewaysPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGateway]` -/// - Returns: `[EC2ClientTypes.TransitGateway]` extension PaginatorSequence where Input == DescribeTransitGatewaysInput, Output == DescribeTransitGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewaysPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGateway]` + /// - Returns: `[EC2ClientTypes.TransitGateway]` public func transitGateways() async throws -> [EC2ClientTypes.TransitGateway] { return try await self.asyncCompactMap { item in item.transitGateways } } } - -/// Paginate over `[DescribeTransitGatewayVpcAttachmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTransitGatewayVpcAttachmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayVpcAttachmentsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTransitGatewayVpcAttachmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTransitGatewayVpcAttachmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTransitGatewayVpcAttachmentsOutputResponse` public func describeTransitGatewayVpcAttachmentsPaginated(input: DescribeTransitGatewayVpcAttachmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTransitGatewayVpcAttachmentsInput.nextToken, outputKey: \DescribeTransitGatewayVpcAttachmentsOutputResponse.nextToken, paginationFunction: self.describeTransitGatewayVpcAttachments(input:)) } @@ -3110,24 +3019,23 @@ extension DescribeTransitGatewayVpcAttachmentsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayVpcAttachmentsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayVpcAttachment]` -/// - Returns: `[EC2ClientTypes.TransitGatewayVpcAttachment]` extension PaginatorSequence where Input == DescribeTransitGatewayVpcAttachmentsInput, Output == DescribeTransitGatewayVpcAttachmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTransitGatewayVpcAttachmentsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayVpcAttachment]` + /// - Returns: `[EC2ClientTypes.TransitGatewayVpcAttachment]` public func transitGatewayVpcAttachments() async throws -> [EC2ClientTypes.TransitGatewayVpcAttachment] { return try await self.asyncCompactMap { item in item.transitGatewayVpcAttachments } } } - -/// Paginate over `[DescribeTrunkInterfaceAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTrunkInterfaceAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTrunkInterfaceAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeTrunkInterfaceAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTrunkInterfaceAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTrunkInterfaceAssociationsOutputResponse` public func describeTrunkInterfaceAssociationsPaginated(input: DescribeTrunkInterfaceAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTrunkInterfaceAssociationsInput.nextToken, outputKey: \DescribeTrunkInterfaceAssociationsOutputResponse.nextToken, paginationFunction: self.describeTrunkInterfaceAssociations(input:)) } @@ -3144,24 +3052,23 @@ extension DescribeTrunkInterfaceAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTrunkInterfaceAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.TrunkInterfaceAssociation]` -/// - Returns: `[EC2ClientTypes.TrunkInterfaceAssociation]` extension PaginatorSequence where Input == DescribeTrunkInterfaceAssociationsInput, Output == DescribeTrunkInterfaceAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTrunkInterfaceAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.TrunkInterfaceAssociation]` + /// - Returns: `[EC2ClientTypes.TrunkInterfaceAssociation]` public func interfaceAssociations() async throws -> [EC2ClientTypes.TrunkInterfaceAssociation] { return try await self.asyncCompactMap { item in item.interfaceAssociations } } } - -/// Paginate over `[DescribeVerifiedAccessEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVerifiedAccessEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessEndpointsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVerifiedAccessEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVerifiedAccessEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessEndpointsOutputResponse` public func describeVerifiedAccessEndpointsPaginated(input: DescribeVerifiedAccessEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVerifiedAccessEndpointsInput.nextToken, outputKey: \DescribeVerifiedAccessEndpointsOutputResponse.nextToken, paginationFunction: self.describeVerifiedAccessEndpoints(input:)) } @@ -3180,24 +3087,23 @@ extension DescribeVerifiedAccessEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessEndpointsPaginated` -/// to access the nested member `[EC2ClientTypes.VerifiedAccessEndpoint]` -/// - Returns: `[EC2ClientTypes.VerifiedAccessEndpoint]` extension PaginatorSequence where Input == DescribeVerifiedAccessEndpointsInput, Output == DescribeVerifiedAccessEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessEndpointsPaginated` + /// to access the nested member `[EC2ClientTypes.VerifiedAccessEndpoint]` + /// - Returns: `[EC2ClientTypes.VerifiedAccessEndpoint]` public func verifiedAccessEndpoints() async throws -> [EC2ClientTypes.VerifiedAccessEndpoint] { return try await self.asyncCompactMap { item in item.verifiedAccessEndpoints } } } - -/// Paginate over `[DescribeVerifiedAccessGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVerifiedAccessGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessGroupsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVerifiedAccessGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVerifiedAccessGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessGroupsOutputResponse` public func describeVerifiedAccessGroupsPaginated(input: DescribeVerifiedAccessGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVerifiedAccessGroupsInput.nextToken, outputKey: \DescribeVerifiedAccessGroupsOutputResponse.nextToken, paginationFunction: self.describeVerifiedAccessGroups(input:)) } @@ -3215,24 +3121,23 @@ extension DescribeVerifiedAccessGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessGroupsPaginated` -/// to access the nested member `[EC2ClientTypes.VerifiedAccessGroup]` -/// - Returns: `[EC2ClientTypes.VerifiedAccessGroup]` extension PaginatorSequence where Input == DescribeVerifiedAccessGroupsInput, Output == DescribeVerifiedAccessGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessGroupsPaginated` + /// to access the nested member `[EC2ClientTypes.VerifiedAccessGroup]` + /// - Returns: `[EC2ClientTypes.VerifiedAccessGroup]` public func verifiedAccessGroups() async throws -> [EC2ClientTypes.VerifiedAccessGroup] { return try await self.asyncCompactMap { item in item.verifiedAccessGroups } } } - -/// Paginate over `[DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVerifiedAccessInstanceLoggingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVerifiedAccessInstanceLoggingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse` public func describeVerifiedAccessInstanceLoggingConfigurationsPaginated(input: DescribeVerifiedAccessInstanceLoggingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVerifiedAccessInstanceLoggingConfigurationsInput.nextToken, outputKey: \DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse.nextToken, paginationFunction: self.describeVerifiedAccessInstanceLoggingConfigurations(input:)) } @@ -3249,24 +3154,23 @@ extension DescribeVerifiedAccessInstanceLoggingConfigurationsInput: ClientRuntim )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessInstanceLoggingConfigurationsPaginated` -/// to access the nested member `[EC2ClientTypes.VerifiedAccessInstanceLoggingConfiguration]` -/// - Returns: `[EC2ClientTypes.VerifiedAccessInstanceLoggingConfiguration]` extension PaginatorSequence where Input == DescribeVerifiedAccessInstanceLoggingConfigurationsInput, Output == DescribeVerifiedAccessInstanceLoggingConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessInstanceLoggingConfigurationsPaginated` + /// to access the nested member `[EC2ClientTypes.VerifiedAccessInstanceLoggingConfiguration]` + /// - Returns: `[EC2ClientTypes.VerifiedAccessInstanceLoggingConfiguration]` public func loggingConfigurations() async throws -> [EC2ClientTypes.VerifiedAccessInstanceLoggingConfiguration] { return try await self.asyncCompactMap { item in item.loggingConfigurations } } } - -/// Paginate over `[DescribeVerifiedAccessInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVerifiedAccessInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessInstancesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVerifiedAccessInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVerifiedAccessInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessInstancesOutputResponse` public func describeVerifiedAccessInstancesPaginated(input: DescribeVerifiedAccessInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVerifiedAccessInstancesInput.nextToken, outputKey: \DescribeVerifiedAccessInstancesOutputResponse.nextToken, paginationFunction: self.describeVerifiedAccessInstances(input:)) } @@ -3283,24 +3187,23 @@ extension DescribeVerifiedAccessInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessInstancesPaginated` -/// to access the nested member `[EC2ClientTypes.VerifiedAccessInstance]` -/// - Returns: `[EC2ClientTypes.VerifiedAccessInstance]` extension PaginatorSequence where Input == DescribeVerifiedAccessInstancesInput, Output == DescribeVerifiedAccessInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessInstancesPaginated` + /// to access the nested member `[EC2ClientTypes.VerifiedAccessInstance]` + /// - Returns: `[EC2ClientTypes.VerifiedAccessInstance]` public func verifiedAccessInstances() async throws -> [EC2ClientTypes.VerifiedAccessInstance] { return try await self.asyncCompactMap { item in item.verifiedAccessInstances } } } - -/// Paginate over `[DescribeVerifiedAccessTrustProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVerifiedAccessTrustProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessTrustProvidersOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVerifiedAccessTrustProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVerifiedAccessTrustProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVerifiedAccessTrustProvidersOutputResponse` public func describeVerifiedAccessTrustProvidersPaginated(input: DescribeVerifiedAccessTrustProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVerifiedAccessTrustProvidersInput.nextToken, outputKey: \DescribeVerifiedAccessTrustProvidersOutputResponse.nextToken, paginationFunction: self.describeVerifiedAccessTrustProviders(input:)) } @@ -3317,24 +3220,23 @@ extension DescribeVerifiedAccessTrustProvidersInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessTrustProvidersPaginated` -/// to access the nested member `[EC2ClientTypes.VerifiedAccessTrustProvider]` -/// - Returns: `[EC2ClientTypes.VerifiedAccessTrustProvider]` extension PaginatorSequence where Input == DescribeVerifiedAccessTrustProvidersInput, Output == DescribeVerifiedAccessTrustProvidersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVerifiedAccessTrustProvidersPaginated` + /// to access the nested member `[EC2ClientTypes.VerifiedAccessTrustProvider]` + /// - Returns: `[EC2ClientTypes.VerifiedAccessTrustProvider]` public func verifiedAccessTrustProviders() async throws -> [EC2ClientTypes.VerifiedAccessTrustProvider] { return try await self.asyncCompactMap { item in item.verifiedAccessTrustProviders } } } - -/// Paginate over `[DescribeVolumesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVolumesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVolumesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVolumesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesOutputResponse` public func describeVolumesPaginated(input: DescribeVolumesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVolumesInput.nextToken, outputKey: \DescribeVolumesOutputResponse.nextToken, paginationFunction: self.describeVolumes(input:)) } @@ -3351,24 +3253,23 @@ extension DescribeVolumesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVolumesPaginated` -/// to access the nested member `[EC2ClientTypes.Volume]` -/// - Returns: `[EC2ClientTypes.Volume]` extension PaginatorSequence where Input == DescribeVolumesInput, Output == DescribeVolumesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVolumesPaginated` + /// to access the nested member `[EC2ClientTypes.Volume]` + /// - Returns: `[EC2ClientTypes.Volume]` public func volumes() async throws -> [EC2ClientTypes.Volume] { return try await self.asyncCompactMap { item in item.volumes } } } - -/// Paginate over `[DescribeVolumesModificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVolumesModificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesModificationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVolumesModificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVolumesModificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesModificationsOutputResponse` public func describeVolumesModificationsPaginated(input: DescribeVolumesModificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVolumesModificationsInput.nextToken, outputKey: \DescribeVolumesModificationsOutputResponse.nextToken, paginationFunction: self.describeVolumesModifications(input:)) } @@ -3385,24 +3286,23 @@ extension DescribeVolumesModificationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVolumesModificationsPaginated` -/// to access the nested member `[EC2ClientTypes.VolumeModification]` -/// - Returns: `[EC2ClientTypes.VolumeModification]` extension PaginatorSequence where Input == DescribeVolumesModificationsInput, Output == DescribeVolumesModificationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVolumesModificationsPaginated` + /// to access the nested member `[EC2ClientTypes.VolumeModification]` + /// - Returns: `[EC2ClientTypes.VolumeModification]` public func volumesModifications() async throws -> [EC2ClientTypes.VolumeModification] { return try await self.asyncCompactMap { item in item.volumesModifications } } } - -/// Paginate over `[DescribeVolumeStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVolumeStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumeStatusOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVolumeStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVolumeStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumeStatusOutputResponse` public func describeVolumeStatusPaginated(input: DescribeVolumeStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVolumeStatusInput.nextToken, outputKey: \DescribeVolumeStatusOutputResponse.nextToken, paginationFunction: self.describeVolumeStatus(input:)) } @@ -3419,24 +3319,23 @@ extension DescribeVolumeStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVolumeStatusPaginated` -/// to access the nested member `[EC2ClientTypes.VolumeStatusItem]` -/// - Returns: `[EC2ClientTypes.VolumeStatusItem]` extension PaginatorSequence where Input == DescribeVolumeStatusInput, Output == DescribeVolumeStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVolumeStatusPaginated` + /// to access the nested member `[EC2ClientTypes.VolumeStatusItem]` + /// - Returns: `[EC2ClientTypes.VolumeStatusItem]` public func volumeStatuses() async throws -> [EC2ClientTypes.VolumeStatusItem] { return try await self.asyncCompactMap { item in item.volumeStatuses } } } - -/// Paginate over `[DescribeVpcClassicLinkDnsSupportOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcClassicLinkDnsSupportInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcClassicLinkDnsSupportOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcClassicLinkDnsSupportOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcClassicLinkDnsSupportInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcClassicLinkDnsSupportOutputResponse` public func describeVpcClassicLinkDnsSupportPaginated(input: DescribeVpcClassicLinkDnsSupportInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcClassicLinkDnsSupportInput.nextToken, outputKey: \DescribeVpcClassicLinkDnsSupportOutputResponse.nextToken, paginationFunction: self.describeVpcClassicLinkDnsSupport(input:)) } @@ -3451,24 +3350,23 @@ extension DescribeVpcClassicLinkDnsSupportInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcClassicLinkDnsSupportPaginated` -/// to access the nested member `[EC2ClientTypes.ClassicLinkDnsSupport]` -/// - Returns: `[EC2ClientTypes.ClassicLinkDnsSupport]` extension PaginatorSequence where Input == DescribeVpcClassicLinkDnsSupportInput, Output == DescribeVpcClassicLinkDnsSupportOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcClassicLinkDnsSupportPaginated` + /// to access the nested member `[EC2ClientTypes.ClassicLinkDnsSupport]` + /// - Returns: `[EC2ClientTypes.ClassicLinkDnsSupport]` public func vpcs() async throws -> [EC2ClientTypes.ClassicLinkDnsSupport] { return try await self.asyncCompactMap { item in item.vpcs } } } - -/// Paginate over `[DescribeVpcEndpointConnectionNotificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcEndpointConnectionNotificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointConnectionNotificationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcEndpointConnectionNotificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcEndpointConnectionNotificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointConnectionNotificationsOutputResponse` public func describeVpcEndpointConnectionNotificationsPaginated(input: DescribeVpcEndpointConnectionNotificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcEndpointConnectionNotificationsInput.nextToken, outputKey: \DescribeVpcEndpointConnectionNotificationsOutputResponse.nextToken, paginationFunction: self.describeVpcEndpointConnectionNotifications(input:)) } @@ -3485,24 +3383,23 @@ extension DescribeVpcEndpointConnectionNotificationsInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointConnectionNotificationsPaginated` -/// to access the nested member `[EC2ClientTypes.ConnectionNotification]` -/// - Returns: `[EC2ClientTypes.ConnectionNotification]` extension PaginatorSequence where Input == DescribeVpcEndpointConnectionNotificationsInput, Output == DescribeVpcEndpointConnectionNotificationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointConnectionNotificationsPaginated` + /// to access the nested member `[EC2ClientTypes.ConnectionNotification]` + /// - Returns: `[EC2ClientTypes.ConnectionNotification]` public func connectionNotificationSet() async throws -> [EC2ClientTypes.ConnectionNotification] { return try await self.asyncCompactMap { item in item.connectionNotificationSet } } } - -/// Paginate over `[DescribeVpcEndpointConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcEndpointConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointConnectionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcEndpointConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcEndpointConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointConnectionsOutputResponse` public func describeVpcEndpointConnectionsPaginated(input: DescribeVpcEndpointConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcEndpointConnectionsInput.nextToken, outputKey: \DescribeVpcEndpointConnectionsOutputResponse.nextToken, paginationFunction: self.describeVpcEndpointConnections(input:)) } @@ -3518,24 +3415,23 @@ extension DescribeVpcEndpointConnectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointConnectionsPaginated` -/// to access the nested member `[EC2ClientTypes.VpcEndpointConnection]` -/// - Returns: `[EC2ClientTypes.VpcEndpointConnection]` extension PaginatorSequence where Input == DescribeVpcEndpointConnectionsInput, Output == DescribeVpcEndpointConnectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointConnectionsPaginated` + /// to access the nested member `[EC2ClientTypes.VpcEndpointConnection]` + /// - Returns: `[EC2ClientTypes.VpcEndpointConnection]` public func vpcEndpointConnections() async throws -> [EC2ClientTypes.VpcEndpointConnection] { return try await self.asyncCompactMap { item in item.vpcEndpointConnections } } } - -/// Paginate over `[DescribeVpcEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointsOutputResponse` public func describeVpcEndpointsPaginated(input: DescribeVpcEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcEndpointsInput.nextToken, outputKey: \DescribeVpcEndpointsOutputResponse.nextToken, paginationFunction: self.describeVpcEndpoints(input:)) } @@ -3552,24 +3448,23 @@ extension DescribeVpcEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointsPaginated` -/// to access the nested member `[EC2ClientTypes.VpcEndpoint]` -/// - Returns: `[EC2ClientTypes.VpcEndpoint]` extension PaginatorSequence where Input == DescribeVpcEndpointsInput, Output == DescribeVpcEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointsPaginated` + /// to access the nested member `[EC2ClientTypes.VpcEndpoint]` + /// - Returns: `[EC2ClientTypes.VpcEndpoint]` public func vpcEndpoints() async throws -> [EC2ClientTypes.VpcEndpoint] { return try await self.asyncCompactMap { item in item.vpcEndpoints } } } - -/// Paginate over `[DescribeVpcEndpointServiceConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcEndpointServiceConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointServiceConfigurationsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcEndpointServiceConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcEndpointServiceConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointServiceConfigurationsOutputResponse` public func describeVpcEndpointServiceConfigurationsPaginated(input: DescribeVpcEndpointServiceConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcEndpointServiceConfigurationsInput.nextToken, outputKey: \DescribeVpcEndpointServiceConfigurationsOutputResponse.nextToken, paginationFunction: self.describeVpcEndpointServiceConfigurations(input:)) } @@ -3586,24 +3481,23 @@ extension DescribeVpcEndpointServiceConfigurationsInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointServiceConfigurationsPaginated` -/// to access the nested member `[EC2ClientTypes.ServiceConfiguration]` -/// - Returns: `[EC2ClientTypes.ServiceConfiguration]` extension PaginatorSequence where Input == DescribeVpcEndpointServiceConfigurationsInput, Output == DescribeVpcEndpointServiceConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointServiceConfigurationsPaginated` + /// to access the nested member `[EC2ClientTypes.ServiceConfiguration]` + /// - Returns: `[EC2ClientTypes.ServiceConfiguration]` public func serviceConfigurations() async throws -> [EC2ClientTypes.ServiceConfiguration] { return try await self.asyncCompactMap { item in item.serviceConfigurations } } } - -/// Paginate over `[DescribeVpcEndpointServicePermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcEndpointServicePermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointServicePermissionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcEndpointServicePermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcEndpointServicePermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcEndpointServicePermissionsOutputResponse` public func describeVpcEndpointServicePermissionsPaginated(input: DescribeVpcEndpointServicePermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcEndpointServicePermissionsInput.nextToken, outputKey: \DescribeVpcEndpointServicePermissionsOutputResponse.nextToken, paginationFunction: self.describeVpcEndpointServicePermissions(input:)) } @@ -3620,24 +3514,23 @@ extension DescribeVpcEndpointServicePermissionsInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointServicePermissionsPaginated` -/// to access the nested member `[EC2ClientTypes.AllowedPrincipal]` -/// - Returns: `[EC2ClientTypes.AllowedPrincipal]` extension PaginatorSequence where Input == DescribeVpcEndpointServicePermissionsInput, Output == DescribeVpcEndpointServicePermissionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcEndpointServicePermissionsPaginated` + /// to access the nested member `[EC2ClientTypes.AllowedPrincipal]` + /// - Returns: `[EC2ClientTypes.AllowedPrincipal]` public func allowedPrincipals() async throws -> [EC2ClientTypes.AllowedPrincipal] { return try await self.asyncCompactMap { item in item.allowedPrincipals } } } - -/// Paginate over `[DescribeVpcPeeringConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcPeeringConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcPeeringConnectionsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcPeeringConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcPeeringConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcPeeringConnectionsOutputResponse` public func describeVpcPeeringConnectionsPaginated(input: DescribeVpcPeeringConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcPeeringConnectionsInput.nextToken, outputKey: \DescribeVpcPeeringConnectionsOutputResponse.nextToken, paginationFunction: self.describeVpcPeeringConnections(input:)) } @@ -3654,24 +3547,23 @@ extension DescribeVpcPeeringConnectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcPeeringConnectionsPaginated` -/// to access the nested member `[EC2ClientTypes.VpcPeeringConnection]` -/// - Returns: `[EC2ClientTypes.VpcPeeringConnection]` extension PaginatorSequence where Input == DescribeVpcPeeringConnectionsInput, Output == DescribeVpcPeeringConnectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcPeeringConnectionsPaginated` + /// to access the nested member `[EC2ClientTypes.VpcPeeringConnection]` + /// - Returns: `[EC2ClientTypes.VpcPeeringConnection]` public func vpcPeeringConnections() async throws -> [EC2ClientTypes.VpcPeeringConnection] { return try await self.asyncCompactMap { item in item.vpcPeeringConnections } } } - -/// Paginate over `[DescribeVpcsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVpcsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcsOutputResponse` extension EC2Client { + /// Paginate over `[DescribeVpcsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVpcsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVpcsOutputResponse` public func describeVpcsPaginated(input: DescribeVpcsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVpcsInput.nextToken, outputKey: \DescribeVpcsOutputResponse.nextToken, paginationFunction: self.describeVpcs(input:)) } @@ -3688,24 +3580,23 @@ extension DescribeVpcsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVpcsPaginated` -/// to access the nested member `[EC2ClientTypes.Vpc]` -/// - Returns: `[EC2ClientTypes.Vpc]` extension PaginatorSequence where Input == DescribeVpcsInput, Output == DescribeVpcsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVpcsPaginated` + /// to access the nested member `[EC2ClientTypes.Vpc]` + /// - Returns: `[EC2ClientTypes.Vpc]` public func vpcs() async throws -> [EC2ClientTypes.Vpc] { return try await self.asyncCompactMap { item in item.vpcs } } } - -/// Paginate over `[GetAssociatedIpv6PoolCidrsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAssociatedIpv6PoolCidrsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAssociatedIpv6PoolCidrsOutputResponse` extension EC2Client { + /// Paginate over `[GetAssociatedIpv6PoolCidrsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAssociatedIpv6PoolCidrsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAssociatedIpv6PoolCidrsOutputResponse` public func getAssociatedIpv6PoolCidrsPaginated(input: GetAssociatedIpv6PoolCidrsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAssociatedIpv6PoolCidrsInput.nextToken, outputKey: \GetAssociatedIpv6PoolCidrsOutputResponse.nextToken, paginationFunction: self.getAssociatedIpv6PoolCidrs(input:)) } @@ -3721,24 +3612,23 @@ extension GetAssociatedIpv6PoolCidrsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getAssociatedIpv6PoolCidrsPaginated` -/// to access the nested member `[EC2ClientTypes.Ipv6CidrAssociation]` -/// - Returns: `[EC2ClientTypes.Ipv6CidrAssociation]` extension PaginatorSequence where Input == GetAssociatedIpv6PoolCidrsInput, Output == GetAssociatedIpv6PoolCidrsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getAssociatedIpv6PoolCidrsPaginated` + /// to access the nested member `[EC2ClientTypes.Ipv6CidrAssociation]` + /// - Returns: `[EC2ClientTypes.Ipv6CidrAssociation]` public func ipv6CidrAssociations() async throws -> [EC2ClientTypes.Ipv6CidrAssociation] { return try await self.asyncCompactMap { item in item.ipv6CidrAssociations } } } - -/// Paginate over `[GetAwsNetworkPerformanceDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAwsNetworkPerformanceDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAwsNetworkPerformanceDataOutputResponse` extension EC2Client { + /// Paginate over `[GetAwsNetworkPerformanceDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAwsNetworkPerformanceDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAwsNetworkPerformanceDataOutputResponse` public func getAwsNetworkPerformanceDataPaginated(input: GetAwsNetworkPerformanceDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAwsNetworkPerformanceDataInput.nextToken, outputKey: \GetAwsNetworkPerformanceDataOutputResponse.nextToken, paginationFunction: self.getAwsNetworkPerformanceData(input:)) } @@ -3756,24 +3646,23 @@ extension GetAwsNetworkPerformanceDataInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getAwsNetworkPerformanceDataPaginated` -/// to access the nested member `[EC2ClientTypes.DataResponse]` -/// - Returns: `[EC2ClientTypes.DataResponse]` extension PaginatorSequence where Input == GetAwsNetworkPerformanceDataInput, Output == GetAwsNetworkPerformanceDataOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getAwsNetworkPerformanceDataPaginated` + /// to access the nested member `[EC2ClientTypes.DataResponse]` + /// - Returns: `[EC2ClientTypes.DataResponse]` public func dataResponses() async throws -> [EC2ClientTypes.DataResponse] { return try await self.asyncCompactMap { item in item.dataResponses } } } - -/// Paginate over `[GetGroupsForCapacityReservationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetGroupsForCapacityReservationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetGroupsForCapacityReservationOutputResponse` extension EC2Client { + /// Paginate over `[GetGroupsForCapacityReservationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetGroupsForCapacityReservationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetGroupsForCapacityReservationOutputResponse` public func getGroupsForCapacityReservationPaginated(input: GetGroupsForCapacityReservationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetGroupsForCapacityReservationInput.nextToken, outputKey: \GetGroupsForCapacityReservationOutputResponse.nextToken, paginationFunction: self.getGroupsForCapacityReservation(input:)) } @@ -3789,24 +3678,23 @@ extension GetGroupsForCapacityReservationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getGroupsForCapacityReservationPaginated` -/// to access the nested member `[EC2ClientTypes.CapacityReservationGroup]` -/// - Returns: `[EC2ClientTypes.CapacityReservationGroup]` extension PaginatorSequence where Input == GetGroupsForCapacityReservationInput, Output == GetGroupsForCapacityReservationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getGroupsForCapacityReservationPaginated` + /// to access the nested member `[EC2ClientTypes.CapacityReservationGroup]` + /// - Returns: `[EC2ClientTypes.CapacityReservationGroup]` public func capacityReservationGroups() async throws -> [EC2ClientTypes.CapacityReservationGroup] { return try await self.asyncCompactMap { item in item.capacityReservationGroups } } } - -/// Paginate over `[GetInstanceTypesFromInstanceRequirementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInstanceTypesFromInstanceRequirementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInstanceTypesFromInstanceRequirementsOutputResponse` extension EC2Client { + /// Paginate over `[GetInstanceTypesFromInstanceRequirementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInstanceTypesFromInstanceRequirementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInstanceTypesFromInstanceRequirementsOutputResponse` public func getInstanceTypesFromInstanceRequirementsPaginated(input: GetInstanceTypesFromInstanceRequirementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInstanceTypesFromInstanceRequirementsInput.nextToken, outputKey: \GetInstanceTypesFromInstanceRequirementsOutputResponse.nextToken, paginationFunction: self.getInstanceTypesFromInstanceRequirements(input:)) } @@ -3824,24 +3712,23 @@ extension GetInstanceTypesFromInstanceRequirementsInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `getInstanceTypesFromInstanceRequirementsPaginated` -/// to access the nested member `[EC2ClientTypes.InstanceTypeInfoFromInstanceRequirements]` -/// - Returns: `[EC2ClientTypes.InstanceTypeInfoFromInstanceRequirements]` extension PaginatorSequence where Input == GetInstanceTypesFromInstanceRequirementsInput, Output == GetInstanceTypesFromInstanceRequirementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getInstanceTypesFromInstanceRequirementsPaginated` + /// to access the nested member `[EC2ClientTypes.InstanceTypeInfoFromInstanceRequirements]` + /// - Returns: `[EC2ClientTypes.InstanceTypeInfoFromInstanceRequirements]` public func instanceTypes() async throws -> [EC2ClientTypes.InstanceTypeInfoFromInstanceRequirements] { return try await self.asyncCompactMap { item in item.instanceTypes } } } - -/// Paginate over `[GetIpamAddressHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIpamAddressHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIpamAddressHistoryOutputResponse` extension EC2Client { + /// Paginate over `[GetIpamAddressHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIpamAddressHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIpamAddressHistoryOutputResponse` public func getIpamAddressHistoryPaginated(input: GetIpamAddressHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIpamAddressHistoryInput.nextToken, outputKey: \GetIpamAddressHistoryOutputResponse.nextToken, paginationFunction: self.getIpamAddressHistory(input:)) } @@ -3861,24 +3748,23 @@ extension GetIpamAddressHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getIpamAddressHistoryPaginated` -/// to access the nested member `[EC2ClientTypes.IpamAddressHistoryRecord]` -/// - Returns: `[EC2ClientTypes.IpamAddressHistoryRecord]` extension PaginatorSequence where Input == GetIpamAddressHistoryInput, Output == GetIpamAddressHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getIpamAddressHistoryPaginated` + /// to access the nested member `[EC2ClientTypes.IpamAddressHistoryRecord]` + /// - Returns: `[EC2ClientTypes.IpamAddressHistoryRecord]` public func historyRecords() async throws -> [EC2ClientTypes.IpamAddressHistoryRecord] { return try await self.asyncCompactMap { item in item.historyRecords } } } - -/// Paginate over `[GetIpamPoolAllocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIpamPoolAllocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIpamPoolAllocationsOutputResponse` extension EC2Client { + /// Paginate over `[GetIpamPoolAllocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIpamPoolAllocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIpamPoolAllocationsOutputResponse` public func getIpamPoolAllocationsPaginated(input: GetIpamPoolAllocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIpamPoolAllocationsInput.nextToken, outputKey: \GetIpamPoolAllocationsOutputResponse.nextToken, paginationFunction: self.getIpamPoolAllocations(input:)) } @@ -3896,24 +3782,23 @@ extension GetIpamPoolAllocationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getIpamPoolAllocationsPaginated` -/// to access the nested member `[EC2ClientTypes.IpamPoolAllocation]` -/// - Returns: `[EC2ClientTypes.IpamPoolAllocation]` extension PaginatorSequence where Input == GetIpamPoolAllocationsInput, Output == GetIpamPoolAllocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getIpamPoolAllocationsPaginated` + /// to access the nested member `[EC2ClientTypes.IpamPoolAllocation]` + /// - Returns: `[EC2ClientTypes.IpamPoolAllocation]` public func ipamPoolAllocations() async throws -> [EC2ClientTypes.IpamPoolAllocation] { return try await self.asyncCompactMap { item in item.ipamPoolAllocations } } } - -/// Paginate over `[GetIpamPoolCidrsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIpamPoolCidrsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIpamPoolCidrsOutputResponse` extension EC2Client { + /// Paginate over `[GetIpamPoolCidrsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIpamPoolCidrsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIpamPoolCidrsOutputResponse` public func getIpamPoolCidrsPaginated(input: GetIpamPoolCidrsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIpamPoolCidrsInput.nextToken, outputKey: \GetIpamPoolCidrsOutputResponse.nextToken, paginationFunction: self.getIpamPoolCidrs(input:)) } @@ -3930,24 +3815,23 @@ extension GetIpamPoolCidrsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getIpamPoolCidrsPaginated` -/// to access the nested member `[EC2ClientTypes.IpamPoolCidr]` -/// - Returns: `[EC2ClientTypes.IpamPoolCidr]` extension PaginatorSequence where Input == GetIpamPoolCidrsInput, Output == GetIpamPoolCidrsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getIpamPoolCidrsPaginated` + /// to access the nested member `[EC2ClientTypes.IpamPoolCidr]` + /// - Returns: `[EC2ClientTypes.IpamPoolCidr]` public func ipamPoolCidrs() async throws -> [EC2ClientTypes.IpamPoolCidr] { return try await self.asyncCompactMap { item in item.ipamPoolCidrs } } } - -/// Paginate over `[GetIpamResourceCidrsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIpamResourceCidrsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIpamResourceCidrsOutputResponse` extension EC2Client { + /// Paginate over `[GetIpamResourceCidrsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIpamResourceCidrsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIpamResourceCidrsOutputResponse` public func getIpamResourceCidrsPaginated(input: GetIpamResourceCidrsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIpamResourceCidrsInput.nextToken, outputKey: \GetIpamResourceCidrsOutputResponse.nextToken, paginationFunction: self.getIpamResourceCidrs(input:)) } @@ -3969,24 +3853,23 @@ extension GetIpamResourceCidrsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getIpamResourceCidrsPaginated` -/// to access the nested member `[EC2ClientTypes.IpamResourceCidr]` -/// - Returns: `[EC2ClientTypes.IpamResourceCidr]` extension PaginatorSequence where Input == GetIpamResourceCidrsInput, Output == GetIpamResourceCidrsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getIpamResourceCidrsPaginated` + /// to access the nested member `[EC2ClientTypes.IpamResourceCidr]` + /// - Returns: `[EC2ClientTypes.IpamResourceCidr]` public func ipamResourceCidrs() async throws -> [EC2ClientTypes.IpamResourceCidr] { return try await self.asyncCompactMap { item in item.ipamResourceCidrs } } } - -/// Paginate over `[GetManagedPrefixListAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetManagedPrefixListAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetManagedPrefixListAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[GetManagedPrefixListAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetManagedPrefixListAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetManagedPrefixListAssociationsOutputResponse` public func getManagedPrefixListAssociationsPaginated(input: GetManagedPrefixListAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetManagedPrefixListAssociationsInput.nextToken, outputKey: \GetManagedPrefixListAssociationsOutputResponse.nextToken, paginationFunction: self.getManagedPrefixListAssociations(input:)) } @@ -4002,24 +3885,23 @@ extension GetManagedPrefixListAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getManagedPrefixListAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.PrefixListAssociation]` -/// - Returns: `[EC2ClientTypes.PrefixListAssociation]` extension PaginatorSequence where Input == GetManagedPrefixListAssociationsInput, Output == GetManagedPrefixListAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getManagedPrefixListAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.PrefixListAssociation]` + /// - Returns: `[EC2ClientTypes.PrefixListAssociation]` public func prefixListAssociations() async throws -> [EC2ClientTypes.PrefixListAssociation] { return try await self.asyncCompactMap { item in item.prefixListAssociations } } } - -/// Paginate over `[GetManagedPrefixListEntriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetManagedPrefixListEntriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetManagedPrefixListEntriesOutputResponse` extension EC2Client { + /// Paginate over `[GetManagedPrefixListEntriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetManagedPrefixListEntriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetManagedPrefixListEntriesOutputResponse` public func getManagedPrefixListEntriesPaginated(input: GetManagedPrefixListEntriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetManagedPrefixListEntriesInput.nextToken, outputKey: \GetManagedPrefixListEntriesOutputResponse.nextToken, paginationFunction: self.getManagedPrefixListEntries(input:)) } @@ -4036,24 +3918,23 @@ extension GetManagedPrefixListEntriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getManagedPrefixListEntriesPaginated` -/// to access the nested member `[EC2ClientTypes.PrefixListEntry]` -/// - Returns: `[EC2ClientTypes.PrefixListEntry]` extension PaginatorSequence where Input == GetManagedPrefixListEntriesInput, Output == GetManagedPrefixListEntriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getManagedPrefixListEntriesPaginated` + /// to access the nested member `[EC2ClientTypes.PrefixListEntry]` + /// - Returns: `[EC2ClientTypes.PrefixListEntry]` public func entries() async throws -> [EC2ClientTypes.PrefixListEntry] { return try await self.asyncCompactMap { item in item.entries } } } - -/// Paginate over `[GetSpotPlacementScoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSpotPlacementScoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSpotPlacementScoresOutputResponse` extension EC2Client { + /// Paginate over `[GetSpotPlacementScoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSpotPlacementScoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSpotPlacementScoresOutputResponse` public func getSpotPlacementScoresPaginated(input: GetSpotPlacementScoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSpotPlacementScoresInput.nextToken, outputKey: \GetSpotPlacementScoresOutputResponse.nextToken, paginationFunction: self.getSpotPlacementScores(input:)) } @@ -4074,24 +3955,23 @@ extension GetSpotPlacementScoresInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSpotPlacementScoresPaginated` -/// to access the nested member `[EC2ClientTypes.SpotPlacementScore]` -/// - Returns: `[EC2ClientTypes.SpotPlacementScore]` extension PaginatorSequence where Input == GetSpotPlacementScoresInput, Output == GetSpotPlacementScoresOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSpotPlacementScoresPaginated` + /// to access the nested member `[EC2ClientTypes.SpotPlacementScore]` + /// - Returns: `[EC2ClientTypes.SpotPlacementScore]` public func spotPlacementScores() async throws -> [EC2ClientTypes.SpotPlacementScore] { return try await self.asyncCompactMap { item in item.spotPlacementScores } } } - -/// Paginate over `[GetTransitGatewayAttachmentPropagationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayAttachmentPropagationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayAttachmentPropagationsOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayAttachmentPropagationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayAttachmentPropagationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayAttachmentPropagationsOutputResponse` public func getTransitGatewayAttachmentPropagationsPaginated(input: GetTransitGatewayAttachmentPropagationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayAttachmentPropagationsInput.nextToken, outputKey: \GetTransitGatewayAttachmentPropagationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayAttachmentPropagations(input:)) } @@ -4108,24 +3988,23 @@ extension GetTransitGatewayAttachmentPropagationsInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayAttachmentPropagationsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayAttachmentPropagation]` -/// - Returns: `[EC2ClientTypes.TransitGatewayAttachmentPropagation]` extension PaginatorSequence where Input == GetTransitGatewayAttachmentPropagationsInput, Output == GetTransitGatewayAttachmentPropagationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayAttachmentPropagationsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayAttachmentPropagation]` + /// - Returns: `[EC2ClientTypes.TransitGatewayAttachmentPropagation]` public func transitGatewayAttachmentPropagations() async throws -> [EC2ClientTypes.TransitGatewayAttachmentPropagation] { return try await self.asyncCompactMap { item in item.transitGatewayAttachmentPropagations } } } - -/// Paginate over `[GetTransitGatewayMulticastDomainAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayMulticastDomainAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayMulticastDomainAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayMulticastDomainAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayMulticastDomainAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayMulticastDomainAssociationsOutputResponse` public func getTransitGatewayMulticastDomainAssociationsPaginated(input: GetTransitGatewayMulticastDomainAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayMulticastDomainAssociationsInput.nextToken, outputKey: \GetTransitGatewayMulticastDomainAssociationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayMulticastDomainAssociations(input:)) } @@ -4142,24 +4021,23 @@ extension GetTransitGatewayMulticastDomainAssociationsInput: ClientRuntime.Pagin )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayMulticastDomainAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastDomainAssociation]` -/// - Returns: `[EC2ClientTypes.TransitGatewayMulticastDomainAssociation]` extension PaginatorSequence where Input == GetTransitGatewayMulticastDomainAssociationsInput, Output == GetTransitGatewayMulticastDomainAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayMulticastDomainAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastDomainAssociation]` + /// - Returns: `[EC2ClientTypes.TransitGatewayMulticastDomainAssociation]` public func multicastDomainAssociations() async throws -> [EC2ClientTypes.TransitGatewayMulticastDomainAssociation] { return try await self.asyncCompactMap { item in item.multicastDomainAssociations } } } - -/// Paginate over `[GetTransitGatewayPolicyTableAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayPolicyTableAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayPolicyTableAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayPolicyTableAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayPolicyTableAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayPolicyTableAssociationsOutputResponse` public func getTransitGatewayPolicyTableAssociationsPaginated(input: GetTransitGatewayPolicyTableAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayPolicyTableAssociationsInput.nextToken, outputKey: \GetTransitGatewayPolicyTableAssociationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayPolicyTableAssociations(input:)) } @@ -4176,24 +4054,23 @@ extension GetTransitGatewayPolicyTableAssociationsInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayPolicyTableAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayPolicyTableAssociation]` -/// - Returns: `[EC2ClientTypes.TransitGatewayPolicyTableAssociation]` extension PaginatorSequence where Input == GetTransitGatewayPolicyTableAssociationsInput, Output == GetTransitGatewayPolicyTableAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayPolicyTableAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayPolicyTableAssociation]` + /// - Returns: `[EC2ClientTypes.TransitGatewayPolicyTableAssociation]` public func associations() async throws -> [EC2ClientTypes.TransitGatewayPolicyTableAssociation] { return try await self.asyncCompactMap { item in item.associations } } } - -/// Paginate over `[GetTransitGatewayPrefixListReferencesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayPrefixListReferencesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayPrefixListReferencesOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayPrefixListReferencesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayPrefixListReferencesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayPrefixListReferencesOutputResponse` public func getTransitGatewayPrefixListReferencesPaginated(input: GetTransitGatewayPrefixListReferencesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayPrefixListReferencesInput.nextToken, outputKey: \GetTransitGatewayPrefixListReferencesOutputResponse.nextToken, paginationFunction: self.getTransitGatewayPrefixListReferences(input:)) } @@ -4210,24 +4087,23 @@ extension GetTransitGatewayPrefixListReferencesInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayPrefixListReferencesPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayPrefixListReference]` -/// - Returns: `[EC2ClientTypes.TransitGatewayPrefixListReference]` extension PaginatorSequence where Input == GetTransitGatewayPrefixListReferencesInput, Output == GetTransitGatewayPrefixListReferencesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayPrefixListReferencesPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayPrefixListReference]` + /// - Returns: `[EC2ClientTypes.TransitGatewayPrefixListReference]` public func transitGatewayPrefixListReferences() async throws -> [EC2ClientTypes.TransitGatewayPrefixListReference] { return try await self.asyncCompactMap { item in item.transitGatewayPrefixListReferences } } } - -/// Paginate over `[GetTransitGatewayRouteTableAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayRouteTableAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRouteTableAssociationsOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayRouteTableAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayRouteTableAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRouteTableAssociationsOutputResponse` public func getTransitGatewayRouteTableAssociationsPaginated(input: GetTransitGatewayRouteTableAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayRouteTableAssociationsInput.nextToken, outputKey: \GetTransitGatewayRouteTableAssociationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayRouteTableAssociations(input:)) } @@ -4244,24 +4120,23 @@ extension GetTransitGatewayRouteTableAssociationsInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRouteTableAssociationsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTableAssociation]` -/// - Returns: `[EC2ClientTypes.TransitGatewayRouteTableAssociation]` extension PaginatorSequence where Input == GetTransitGatewayRouteTableAssociationsInput, Output == GetTransitGatewayRouteTableAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRouteTableAssociationsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTableAssociation]` + /// - Returns: `[EC2ClientTypes.TransitGatewayRouteTableAssociation]` public func associations() async throws -> [EC2ClientTypes.TransitGatewayRouteTableAssociation] { return try await self.asyncCompactMap { item in item.associations } } } - -/// Paginate over `[GetTransitGatewayRouteTablePropagationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayRouteTablePropagationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRouteTablePropagationsOutputResponse` extension EC2Client { + /// Paginate over `[GetTransitGatewayRouteTablePropagationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayRouteTablePropagationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRouteTablePropagationsOutputResponse` public func getTransitGatewayRouteTablePropagationsPaginated(input: GetTransitGatewayRouteTablePropagationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayRouteTablePropagationsInput.nextToken, outputKey: \GetTransitGatewayRouteTablePropagationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayRouteTablePropagations(input:)) } @@ -4278,24 +4153,23 @@ extension GetTransitGatewayRouteTablePropagationsInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRouteTablePropagationsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTablePropagation]` -/// - Returns: `[EC2ClientTypes.TransitGatewayRouteTablePropagation]` extension PaginatorSequence where Input == GetTransitGatewayRouteTablePropagationsInput, Output == GetTransitGatewayRouteTablePropagationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRouteTablePropagationsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayRouteTablePropagation]` + /// - Returns: `[EC2ClientTypes.TransitGatewayRouteTablePropagation]` public func transitGatewayRouteTablePropagations() async throws -> [EC2ClientTypes.TransitGatewayRouteTablePropagation] { return try await self.asyncCompactMap { item in item.transitGatewayRouteTablePropagations } } } - -/// Paginate over `[GetVpnConnectionDeviceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetVpnConnectionDeviceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetVpnConnectionDeviceTypesOutputResponse` extension EC2Client { + /// Paginate over `[GetVpnConnectionDeviceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetVpnConnectionDeviceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetVpnConnectionDeviceTypesOutputResponse` public func getVpnConnectionDeviceTypesPaginated(input: GetVpnConnectionDeviceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetVpnConnectionDeviceTypesInput.nextToken, outputKey: \GetVpnConnectionDeviceTypesOutputResponse.nextToken, paginationFunction: self.getVpnConnectionDeviceTypes(input:)) } @@ -4310,24 +4184,23 @@ extension GetVpnConnectionDeviceTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getVpnConnectionDeviceTypesPaginated` -/// to access the nested member `[EC2ClientTypes.VpnConnectionDeviceType]` -/// - Returns: `[EC2ClientTypes.VpnConnectionDeviceType]` extension PaginatorSequence where Input == GetVpnConnectionDeviceTypesInput, Output == GetVpnConnectionDeviceTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getVpnConnectionDeviceTypesPaginated` + /// to access the nested member `[EC2ClientTypes.VpnConnectionDeviceType]` + /// - Returns: `[EC2ClientTypes.VpnConnectionDeviceType]` public func vpnConnectionDeviceTypes() async throws -> [EC2ClientTypes.VpnConnectionDeviceType] { return try await self.asyncCompactMap { item in item.vpnConnectionDeviceTypes } } } - -/// Paginate over `[ListImagesInRecycleBinOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagesInRecycleBinInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagesInRecycleBinOutputResponse` extension EC2Client { + /// Paginate over `[ListImagesInRecycleBinOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagesInRecycleBinInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagesInRecycleBinOutputResponse` public func listImagesInRecycleBinPaginated(input: ListImagesInRecycleBinInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagesInRecycleBinInput.nextToken, outputKey: \ListImagesInRecycleBinOutputResponse.nextToken, paginationFunction: self.listImagesInRecycleBin(input:)) } @@ -4343,24 +4216,23 @@ extension ListImagesInRecycleBinInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImagesInRecycleBinPaginated` -/// to access the nested member `[EC2ClientTypes.ImageRecycleBinInfo]` -/// - Returns: `[EC2ClientTypes.ImageRecycleBinInfo]` extension PaginatorSequence where Input == ListImagesInRecycleBinInput, Output == ListImagesInRecycleBinOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagesInRecycleBinPaginated` + /// to access the nested member `[EC2ClientTypes.ImageRecycleBinInfo]` + /// - Returns: `[EC2ClientTypes.ImageRecycleBinInfo]` public func images() async throws -> [EC2ClientTypes.ImageRecycleBinInfo] { return try await self.asyncCompactMap { item in item.images } } } - -/// Paginate over `[ListSnapshotsInRecycleBinOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSnapshotsInRecycleBinInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotsInRecycleBinOutputResponse` extension EC2Client { + /// Paginate over `[ListSnapshotsInRecycleBinOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSnapshotsInRecycleBinInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotsInRecycleBinOutputResponse` public func listSnapshotsInRecycleBinPaginated(input: ListSnapshotsInRecycleBinInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSnapshotsInRecycleBinInput.nextToken, outputKey: \ListSnapshotsInRecycleBinOutputResponse.nextToken, paginationFunction: self.listSnapshotsInRecycleBin(input:)) } @@ -4376,24 +4248,23 @@ extension ListSnapshotsInRecycleBinInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSnapshotsInRecycleBinPaginated` -/// to access the nested member `[EC2ClientTypes.SnapshotRecycleBinInfo]` -/// - Returns: `[EC2ClientTypes.SnapshotRecycleBinInfo]` extension PaginatorSequence where Input == ListSnapshotsInRecycleBinInput, Output == ListSnapshotsInRecycleBinOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSnapshotsInRecycleBinPaginated` + /// to access the nested member `[EC2ClientTypes.SnapshotRecycleBinInfo]` + /// - Returns: `[EC2ClientTypes.SnapshotRecycleBinInfo]` public func snapshots() async throws -> [EC2ClientTypes.SnapshotRecycleBinInfo] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[SearchLocalGatewayRoutesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchLocalGatewayRoutesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchLocalGatewayRoutesOutputResponse` extension EC2Client { + /// Paginate over `[SearchLocalGatewayRoutesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchLocalGatewayRoutesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchLocalGatewayRoutesOutputResponse` public func searchLocalGatewayRoutesPaginated(input: SearchLocalGatewayRoutesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchLocalGatewayRoutesInput.nextToken, outputKey: \SearchLocalGatewayRoutesOutputResponse.nextToken, paginationFunction: self.searchLocalGatewayRoutes(input:)) } @@ -4410,24 +4281,23 @@ extension SearchLocalGatewayRoutesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchLocalGatewayRoutesPaginated` -/// to access the nested member `[EC2ClientTypes.LocalGatewayRoute]` -/// - Returns: `[EC2ClientTypes.LocalGatewayRoute]` extension PaginatorSequence where Input == SearchLocalGatewayRoutesInput, Output == SearchLocalGatewayRoutesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchLocalGatewayRoutesPaginated` + /// to access the nested member `[EC2ClientTypes.LocalGatewayRoute]` + /// - Returns: `[EC2ClientTypes.LocalGatewayRoute]` public func routes() async throws -> [EC2ClientTypes.LocalGatewayRoute] { return try await self.asyncCompactMap { item in item.routes } } } - -/// Paginate over `[SearchTransitGatewayMulticastGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchTransitGatewayMulticastGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchTransitGatewayMulticastGroupsOutputResponse` extension EC2Client { + /// Paginate over `[SearchTransitGatewayMulticastGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchTransitGatewayMulticastGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchTransitGatewayMulticastGroupsOutputResponse` public func searchTransitGatewayMulticastGroupsPaginated(input: SearchTransitGatewayMulticastGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchTransitGatewayMulticastGroupsInput.nextToken, outputKey: \SearchTransitGatewayMulticastGroupsOutputResponse.nextToken, paginationFunction: self.searchTransitGatewayMulticastGroups(input:)) } @@ -4444,10 +4314,10 @@ extension SearchTransitGatewayMulticastGroupsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `searchTransitGatewayMulticastGroupsPaginated` -/// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastGroup]` -/// - Returns: `[EC2ClientTypes.TransitGatewayMulticastGroup]` extension PaginatorSequence where Input == SearchTransitGatewayMulticastGroupsInput, Output == SearchTransitGatewayMulticastGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchTransitGatewayMulticastGroupsPaginated` + /// to access the nested member `[EC2ClientTypes.TransitGatewayMulticastGroup]` + /// - Returns: `[EC2ClientTypes.TransitGatewayMulticastGroup]` public func multicastGroups() async throws -> [EC2ClientTypes.TransitGatewayMulticastGroup] { return try await self.asyncCompactMap { item in item.multicastGroups } } diff --git a/Sources/Services/AWSEC2/models/Models.swift b/Sources/Services/AWSEC2/models/Models.swift index 8aeed733417..addc61b2189 100644 --- a/Sources/Services/AWSEC2/models/Models.swift +++ b/Sources/Services/AWSEC2/models/Models.swift @@ -1080,7 +1080,7 @@ public struct AcceptVpcEndpointConnectionsInput: Swift.Equatable { /// The ID of the VPC endpoint service. /// This member is required. public var serviceId: Swift.String? - /// The IDs of one or more interface VPC endpoints. + /// The IDs of the interface VPC endpoints. /// This member is required. public var vpcEndpointIds: [Swift.String]? @@ -9091,7 +9091,7 @@ public struct AuthorizeSecurityGroupIngressInput: Swift.Equatable { public var cidrIp: Swift.String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all types. If you specify all ICMP types, you must specify all codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule. + /// If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP, this is the type number. A value of -1 indicates all ICMP types. If you specify all ICMP types, you must specify all ICMP codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule. public var fromPort: Swift.Int? /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. public var groupId: Swift.String? @@ -9107,7 +9107,7 @@ public struct AuthorizeSecurityGroupIngressInput: Swift.Equatable { public var sourceSecurityGroupOwnerId: Swift.String? /// [VPC Only] The tags applied to the security group rule. public var tagSpecifications: [EC2ClientTypes.TagSpecification]? - /// The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all codes. If you specify all ICMP types, you must specify all codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule. + /// If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP, this is the code. A value of -1 indicates all ICMP codes. If you specify all ICMP types, you must specify all ICMP codes. Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule. public var toPort: Swift.Int? public init ( @@ -18378,7 +18378,7 @@ public struct CreateClientVpnEndpointInput: Swift.Equatable { /// Information about the authentication method to be used to authenticate clients. /// This member is required. public var authenticationOptions: [EC2ClientTypes.ClientVpnAuthenticationRequest]? - /// The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater. + /// The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. Client CIDR range must have a size of at least /22 and must not be greater than /12. /// This member is required. public var clientCidrBlock: Swift.String? /// The options for managing connection authorization for new client connections. @@ -33371,7 +33371,7 @@ extension CreateVpcEndpointConnectionNotificationInput: ClientRuntime.URLPathPro public struct CreateVpcEndpointConnectionNotificationInput: Swift.Equatable { /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [How to ensure idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). public var clientToken: Swift.String? - /// One or more endpoint events for which to receive notifications. Valid values are Accept, Connect, Delete, and Reject. + /// The endpoint events for which to receive notifications. Valid values are Accept, Connect, Delete, and Reject. /// This member is required. public var connectionEvents: [Swift.String]? /// The ARN of the SNS topic for the notifications. @@ -33614,7 +33614,6 @@ extension CreateVpcEndpointInput: ClientRuntime.URLPathProvider { } } -/// Contains the parameters for CreateVpcEndpoint. public struct CreateVpcEndpointInput: Swift.Equatable { /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see [How to ensure idempotency](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). public var clientToken: Swift.String? @@ -33628,20 +33627,20 @@ public struct CreateVpcEndpointInput: Swift.Equatable { public var policyDocument: Swift.String? /// (Interface endpoint) Indicates whether to associate a private hosted zone with the specified VPC. The private hosted zone contains a record set for the default public DNS name for the service for the Region (for example, kinesis.us-east-1.amazonaws.com), which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service. To use a private hosted zone, you must set the following VPC attributes to true: enableDnsHostnames and enableDnsSupport. Use [ModifyVpcAttribute] to set the VPC attributes. Default: true public var privateDnsEnabled: Swift.Bool? - /// (Gateway endpoint) One or more route table IDs. + /// (Gateway endpoint) The route table IDs. public var routeTableIds: [Swift.String]? - /// (Interface endpoint) The ID of one or more security groups to associate with the endpoint network interface. + /// (Interface endpoint) The IDs of the security groups to associate with the endpoint network interface. If this parameter is not specified, we use the default security group for the VPC. public var securityGroupIds: [Swift.String]? - /// The service name. To get a list of available services, use the [DescribeVpcEndpointServices] request, or get the name from the service provider. + /// The service name. /// This member is required. public var serviceName: Swift.String? - /// (Interface and Gateway Load Balancer endpoints) The ID of one or more subnets in which to create an endpoint network interface. For a Gateway Load Balancer endpoint, you can specify one subnet only. + /// (Interface and Gateway Load Balancer endpoints) The IDs of the subnets in which to create an endpoint network interface. For a Gateway Load Balancer endpoint, you can specify only one subnet. public var subnetIds: [Swift.String]? /// The tags to associate with the endpoint. public var tagSpecifications: [EC2ClientTypes.TagSpecification]? /// The type of endpoint. Default: Gateway public var vpcEndpointType: EC2ClientTypes.VpcEndpointType? - /// The ID of the VPC in which the endpoint will be used. + /// The ID of the VPC for the endpoint. /// This member is required. public var vpcId: Swift.String? @@ -33843,7 +33842,6 @@ extension CreateVpcEndpointOutputResponse: ClientRuntime.HttpResponseBinding { } } -/// Contains the output of CreateVpcEndpoint. public struct CreateVpcEndpointOutputResponse: Swift.Equatable { /// Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. public var clientToken: Swift.String? @@ -33961,9 +33959,9 @@ public struct CreateVpcEndpointServiceConfigurationInput: Swift.Equatable { public var clientToken: Swift.String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// The Amazon Resource Names (ARNs) of one or more Gateway Load Balancers. + /// The Amazon Resource Names (ARNs) of the Gateway Load Balancers. public var gatewayLoadBalancerArns: [Swift.String]? - /// The Amazon Resource Names (ARNs) of one or more Network Load Balancers for your service. + /// The Amazon Resource Names (ARNs) of the Network Load Balancers. public var networkLoadBalancerArns: [Swift.String]? /// (Interface endpoint configuration) The private DNS name to assign to the VPC endpoint service. public var privateDnsName: Swift.String? @@ -35368,15 +35366,13 @@ extension EC2ClientTypes { public var destination: Swift.String? /// A user-defined ID associated with a data query that's returned in the dataResponse identifying the query. For example, if you set the Id to MyQuery01in the query, the dataResponse identifies the query as MyQuery01. public var id: Swift.String? - /// The aggregation metric used for the data query. Currently only aggregation-latency is supported, indicating network latency. + /// The metric, aggregation-latency, indicating that network latency is aggregated for the query. This is the only supported metric. public var metric: EC2ClientTypes.MetricType? /// The aggregation period used for the data query. public var period: EC2ClientTypes.PeriodType? /// The Region or Availability Zone that's the source for the data query. For example, us-east-1. public var source: Swift.String? - /// Metric data aggregations over specified periods of time. The following are the supported Infrastructure Performance statistics: - /// - /// * p50 - The median value of the metric aggregated over a specified start and end time. For example, a metric of five_minutes is the median of all the data points gathered within those five minutes. + /// The metric data aggregation period, p50, between the specified startDate and endDate. For example, a metric of five_minutes is the median of all the data points gathered within those five minutes. p50 is the only supported metric. public var statistic: EC2ClientTypes.StatisticType? public init ( @@ -35487,7 +35483,7 @@ extension EC2ClientTypes { public var destination: Swift.String? /// The ID passed in the DataQuery. public var id: Swift.String? - /// The metric used for the network performance request. Currently only aggregate-latency is supported, showing network latency during a specified period. + /// The metric used for the network performance request. Only aggregate-latency is supported, which shows network latency during a specified period. public var metric: EC2ClientTypes.MetricType? /// A list of MetricPoint objects. public var metricPoints: [EC2ClientTypes.MetricPoint]? @@ -43641,7 +43637,7 @@ extension DeleteVpcEndpointConnectionNotificationsInput: ClientRuntime.URLPathPr } public struct DeleteVpcEndpointConnectionNotificationsInput: Swift.Equatable { - /// One or more notification IDs. + /// The IDs of the notifications. /// This member is required. public var connectionNotificationIds: [Swift.String]? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. @@ -43803,7 +43799,7 @@ extension DeleteVpcEndpointServiceConfigurationsInput: ClientRuntime.URLPathProv public struct DeleteVpcEndpointServiceConfigurationsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// The IDs of one or more services. + /// The IDs of the services. /// This member is required. public var serviceIds: [Swift.String]? @@ -43960,11 +43956,10 @@ extension DeleteVpcEndpointsInput: ClientRuntime.URLPathProvider { } } -/// Contains the parameters for DeleteVpcEndpoints. public struct DeleteVpcEndpointsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more VPC endpoint IDs. + /// The IDs of the VPC endpoints. /// This member is required. public var vpcEndpointIds: [Swift.String]? @@ -44047,7 +44042,6 @@ extension DeleteVpcEndpointsOutputResponse: ClientRuntime.HttpResponseBinding { } } -/// Contains the output of DeleteVpcEndpoints. public struct DeleteVpcEndpointsOutputResponse: Swift.Equatable { /// Information about the VPC endpoints that were not successfully deleted. public var unsuccessful: [EC2ClientTypes.UnsuccessfulItem]? @@ -57497,9 +57491,11 @@ public struct DescribeInstancesInput: Swift.Equatable { /// /// * metadata-options.http-tokens - The metadata request authorization state (optional | required) /// - /// * metadata-options.http-put-response-hop-limit - The http metadata request put response hop limit (integer, possible values 1 to 64) + /// * metadata-options.http-put-response-hop-limit - The HTTP metadata request put response hop limit (integer, possible values 1 to 64) + /// + /// * metadata-options.http-endpoint - The status of access to the HTTP metadata endpoint on your instance (enabled | disabled) /// - /// * metadata-options.http-endpoint - Enable or disable metadata access on http endpoint (enabled | disabled) + /// * metadata-options.instance-metadata-tags - The status of access to instance tags from the instance metadata (enabled | disabled) /// /// * monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled). /// @@ -76713,7 +76709,7 @@ public struct DescribeVpcEndpointConnectionNotificationsInput: Swift.Equatable { public var connectionNotificationId: Swift.String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * connection-notification-arn - The ARN of the SNS topic for the notification. /// @@ -76832,7 +76828,7 @@ extension DescribeVpcEndpointConnectionNotificationsOutputResponse: ClientRuntim } public struct DescribeVpcEndpointConnectionNotificationsOutputResponse: Swift.Equatable { - /// One or more notifications. + /// The notifications. public var connectionNotificationSet: [EC2ClientTypes.ConnectionNotification]? /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public var nextToken: Swift.String? @@ -76922,7 +76918,7 @@ extension DescribeVpcEndpointConnectionsInput: ClientRuntime.URLPathProvider { public struct DescribeVpcEndpointConnectionsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * ip-address-type - The IP address type (ipv4 | ipv6). /// @@ -77035,7 +77031,7 @@ extension DescribeVpcEndpointConnectionsOutputResponse: ClientRuntime.HttpRespon public struct DescribeVpcEndpointConnectionsOutputResponse: Swift.Equatable { /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public var nextToken: Swift.String? - /// Information about one or more VPC endpoint connections. + /// Information about the VPC endpoint connections. public var vpcEndpointConnections: [EC2ClientTypes.VpcEndpointConnection]? public init ( @@ -77135,7 +77131,7 @@ extension DescribeVpcEndpointServiceConfigurationsInput: ClientRuntime.URLPathPr public struct DescribeVpcEndpointServiceConfigurationsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * service-name - The name of the service. /// @@ -77153,7 +77149,7 @@ public struct DescribeVpcEndpointServiceConfigurationsInput: Swift.Equatable { public var maxResults: Swift.Int? /// The token to retrieve the next page of results. public var nextToken: Swift.String? - /// The IDs of one or more services. + /// The IDs of the endpoint services. public var serviceIds: [Swift.String]? public init ( @@ -77275,7 +77271,7 @@ extension DescribeVpcEndpointServiceConfigurationsOutputResponse: ClientRuntime. public struct DescribeVpcEndpointServiceConfigurationsOutputResponse: Swift.Equatable { /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public var nextToken: Swift.String? - /// Information about one or more services. + /// Information about the services. public var serviceConfigurations: [EC2ClientTypes.ServiceConfiguration]? public init ( @@ -77366,7 +77362,7 @@ extension DescribeVpcEndpointServicePermissionsInput: ClientRuntime.URLPathProvi public struct DescribeVpcEndpointServicePermissionsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * principal - The ARN of the principal. /// @@ -77480,7 +77476,7 @@ extension DescribeVpcEndpointServicePermissionsOutputResponse: ClientRuntime.Htt } public struct DescribeVpcEndpointServicePermissionsOutputResponse: Swift.Equatable { - /// Information about one or more allowed principals. + /// Information about the allowed principals. public var allowedPrincipals: [EC2ClientTypes.AllowedPrincipal]? /// The token to use to retrieve the next page of results. This value is null when there are no more results to return. public var nextToken: Swift.String? @@ -77579,11 +77575,10 @@ extension DescribeVpcEndpointServicesInput: ClientRuntime.URLPathProvider { } } -/// Contains the parameters for DescribeVpcEndpointServices. public struct DescribeVpcEndpointServicesInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * owner - The ID or alias of the Amazon Web Services account that owns the service. /// @@ -77601,7 +77596,7 @@ public struct DescribeVpcEndpointServicesInput: Swift.Equatable { public var maxResults: Swift.Int? /// The token for the next set of items to return. (You received this token from a prior call.) public var nextToken: Swift.String? - /// One or more service names. + /// The service names. public var serviceNames: [Swift.String]? public init ( @@ -77722,13 +77717,12 @@ extension DescribeVpcEndpointServicesOutputResponse: ClientRuntime.HttpResponseB } } -/// Contains the output of DescribeVpcEndpointServices. public struct DescribeVpcEndpointServicesOutputResponse: Swift.Equatable { /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public var nextToken: Swift.String? /// Information about the service. public var serviceDetails: [EC2ClientTypes.ServiceDetail]? - /// A list of supported services. + /// The supported services. public var serviceNames: [Swift.String]? public init ( @@ -77848,11 +77842,10 @@ extension DescribeVpcEndpointsInput: ClientRuntime.URLPathProvider { } } -/// Contains the parameters for DescribeVpcEndpoints. public struct DescribeVpcEndpointsInput: Swift.Equatable { /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// One or more filters. + /// The filters. /// /// * ip-address-type - The IP address type (ipv4 | ipv6). /// @@ -77874,7 +77867,7 @@ public struct DescribeVpcEndpointsInput: Swift.Equatable { public var maxResults: Swift.Int? /// The token for the next set of items to return. (You received this token from a prior call.) public var nextToken: Swift.String? - /// One or more endpoint IDs. + /// The IDs of the VPC endpoints. public var vpcEndpointIds: [Swift.String]? public init ( @@ -77993,7 +77986,6 @@ extension DescribeVpcEndpointsOutputResponse: ClientRuntime.HttpResponseBinding } } -/// Contains the output of DescribeVpcEndpoints. public struct DescribeVpcEndpointsOutputResponse: Swift.Equatable { /// The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. public var nextToken: Swift.String? @@ -92703,6 +92695,7 @@ extension EC2ClientTypes { public var fpgaImageGlobalId: Swift.String? /// The FPGA image identifier (AFI ID). public var fpgaImageId: Swift.String? + /// The instance types supported by the AFI. public var instanceTypes: [Swift.String]? /// The name of the AFI. public var name: Swift.String? @@ -107803,7 +107796,14 @@ extension EC2ClientTypes { public var httpProtocolIpv6: EC2ClientTypes.InstanceMetadataProtocolState? /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64 public var httpPutResponseHopLimit: Swift.Int? - /// The state of token usage for your instance metadata requests. If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned. If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. Default: optional + /// IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional (in other words, set the use of IMDSv2 to optional) or required (in other words, set the use of IMDSv2 to required). + /// + /// * optional - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. + /// + /// * required - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + /// + /// + /// Default: optional public var httpTokens: EC2ClientTypes.HttpTokensState? /// Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). Default: disabled public var instanceMetadataTags: EC2ClientTypes.InstanceMetadataTagsState? @@ -107884,7 +107884,14 @@ extension EC2ClientTypes { public var httpProtocolIpv6: EC2ClientTypes.InstanceMetadataProtocolState? /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64 public var httpPutResponseHopLimit: Swift.Int? - /// The state of token usage for your instance metadata requests. If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned. If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. Default: optional + /// IMDSv2 uses token-backed sessions. Indicates whether the use of HTTP tokens is optional (in other words, indicates whether the use of IMDSv2 is optional) or required (in other words, indicates whether the use of IMDSv2 is required). + /// + /// * optional - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. + /// + /// * required - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + /// + /// + /// Default: optional public var httpTokens: EC2ClientTypes.HttpTokensState? /// Indicates whether access to instance tags from the instance metadata is enabled or disabled. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). public var instanceMetadataTags: EC2ClientTypes.InstanceMetadataTagsState? @@ -113708,7 +113715,7 @@ extension EC2ClientTypes.IpPermission: Swift.Codable { extension EC2ClientTypes { /// Describes a set of permissions for a security group rule. public struct IpPermission: Swift.Equatable { - /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var fromPort: Swift.Int? /// The IP protocol name (tcp, udp, icmp, icmpv6) or number (see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). [VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. public var ipProtocol: Swift.String? @@ -113718,7 +113725,7 @@ extension EC2ClientTypes { public var ipv6Ranges: [EC2ClientTypes.Ipv6Range]? /// [VPC only] The prefix list IDs. public var prefixListIds: [EC2ClientTypes.PrefixListId]? - /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var toPort: Swift.Int? /// The security group and Amazon Web Services account ID pairs. public var userIdGroupPairs: [EC2ClientTypes.UserIdGroupPair]? @@ -118252,7 +118259,7 @@ extension EC2ClientTypes { public var httpProtocolIpv6: EC2ClientTypes.LaunchTemplateInstanceMetadataProtocolIpv6? /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64 public var httpPutResponseHopLimit: Swift.Int? - /// The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional. If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. + /// Indicates whether IMDSv2 is optional or required. optional - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. required - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. Default: optional public var httpTokens: EC2ClientTypes.LaunchTemplateHttpTokensState? /// Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). Default: disabled public var instanceMetadataTags: EC2ClientTypes.LaunchTemplateInstanceMetadataTagsState? @@ -118331,7 +118338,14 @@ extension EC2ClientTypes { public var httpProtocolIpv6: EC2ClientTypes.LaunchTemplateInstanceMetadataProtocolIpv6? /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 Possible values: Integers from 1 to 64 public var httpPutResponseHopLimit: Swift.Int? - /// The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional. If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. + /// IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional (in other words, set the use of IMDSv2 to optional) or required (in other words, set the use of IMDSv2 to required). + /// + /// * optional - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. + /// + /// * required - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + /// + /// + /// Default: optional public var httpTokens: EC2ClientTypes.LaunchTemplateHttpTokensState? /// Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). Default: disabled public var instanceMetadataTags: EC2ClientTypes.LaunchTemplateInstanceMetadataTagsState? @@ -122539,7 +122553,7 @@ extension EC2ClientTypes.MetricPoint: Swift.Codable { } extension EC2ClientTypes { - /// Indicates whether the network was healthy or unhealthy at a particular point. The value is aggregated from the startDate to the endDate. Currently only five_minutes is supported. + /// Indicates whether the network was healthy or degraded at a particular point. The value is aggregated from the startDate to the endDate. Currently only five_minutes is supported. public struct MetricPoint: Swift.Equatable { /// The end date for the metric point. The ending time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z. public var endDate: ClientRuntime.Date? @@ -126096,7 +126110,14 @@ public struct ModifyInstanceMetadataOptionsInput: Swift.Equatable { public var httpProtocolIpv6: EC2ClientTypes.InstanceMetadataProtocolState? /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. If no parameter is specified, the existing state is maintained. Possible values: Integers from 1 to 64 public var httpPutResponseHopLimit: Swift.Int? - /// The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional. If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned. If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. + /// IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to optional (in other words, set the use of IMDSv2 to optional) or required (in other words, set the use of IMDSv2 to required). + /// + /// * optional - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. + /// + /// * required - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + /// + /// + /// Default: optional public var httpTokens: EC2ClientTypes.HttpTokensState? /// The ID of the instance. /// This member is required. @@ -132119,7 +132140,7 @@ extension ModifyVpcEndpointConnectionNotificationInput: ClientRuntime.URLPathPro } public struct ModifyVpcEndpointConnectionNotificationInput: Swift.Equatable { - /// One or more events for the endpoint. Valid values are Accept, Connect, Delete, and Reject. + /// The events for the endpoint. Valid values are Accept, Connect, Delete, and Reject. public var connectionEvents: [Swift.String]? /// The ARN for the SNS topic for the notification. public var connectionNotificationArn: Swift.String? @@ -132355,13 +132376,12 @@ extension ModifyVpcEndpointInput: ClientRuntime.URLPathProvider { } } -/// Contains the parameters for ModifyVpcEndpoint. public struct ModifyVpcEndpointInput: Swift.Equatable { - /// (Gateway endpoint) One or more route tables IDs to associate with the endpoint. + /// (Gateway endpoint) The IDs of the route tables to associate with the endpoint. public var addRouteTableIds: [Swift.String]? - /// (Interface endpoint) One or more security group IDs to associate with the network interface. + /// (Interface endpoint) The IDs of the security groups to associate with the network interface. public var addSecurityGroupIds: [Swift.String]? - /// (Interface and Gateway Load Balancer endpoints) One or more subnet IDs in which to serve the endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet. + /// (Interface and Gateway Load Balancer endpoints) The IDs of the subnets in which to serve the endpoint. For a Gateway Load Balancer endpoint, you can specify only one subnet. public var addSubnetIds: [Swift.String]? /// The DNS options for the endpoint. public var dnsOptions: EC2ClientTypes.DnsOptionsSpecification? @@ -132373,11 +132393,11 @@ public struct ModifyVpcEndpointInput: Swift.Equatable { public var policyDocument: Swift.String? /// (Interface endpoint) Indicates whether a private hosted zone is associated with the VPC. public var privateDnsEnabled: Swift.Bool? - /// (Gateway endpoint) One or more route table IDs to disassociate from the endpoint. + /// (Gateway endpoint) The IDs of the route tables to disassociate from the endpoint. public var removeRouteTableIds: [Swift.String]? - /// (Interface endpoint) One or more security group IDs to disassociate from the network interface. + /// (Interface endpoint) The IDs of the security groups to disassociate from the network interface. public var removeSecurityGroupIds: [Swift.String]? - /// (Interface endpoint) One or more subnets IDs in which to remove the endpoint. + /// (Interface endpoint) The IDs of the subnets from which to remove the endpoint. public var removeSubnetIds: [Swift.String]? /// (Gateway endpoint) Specify true to reset the policy document to the default policy. The default policy allows full access to the service. public var resetPolicy: Swift.Bool? @@ -133189,11 +133209,11 @@ extension ModifyVpcEndpointServicePermissionsInput: ClientRuntime.URLPathProvide } public struct ModifyVpcEndpointServicePermissionsInput: Swift.Equatable { - /// The Amazon Resource Names (ARN) of one or more principals. Permissions are granted to the principals in this list. To grant permissions to all principals, specify an asterisk (*). + /// The Amazon Resource Names (ARN) of the principals. Permissions are granted to the principals in this list. To grant permissions to all principals, specify an asterisk (*). public var addAllowedPrincipals: [Swift.String]? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// The Amazon Resource Names (ARN) of one or more principals. Permissions are revoked for principals in this list. + /// The Amazon Resource Names (ARN) of the principals. Permissions are revoked for principals in this list. public var removeAllowedPrincipals: [Swift.String]? /// The ID of the service. /// This member is required. @@ -145568,7 +145588,7 @@ public struct RejectVpcEndpointConnectionsInput: Swift.Equatable { /// The ID of the service. /// This member is required. public var serviceId: Swift.String? - /// The IDs of one or more VPC endpoints. + /// The IDs of the VPC endpoints. /// This member is required. public var vpcEndpointIds: [Swift.String]? @@ -148278,7 +148298,7 @@ extension EC2ClientTypes { public var cpuOptions: EC2ClientTypes.LaunchTemplateCpuOptionsRequest? /// The credit option for CPU usage of the instance. Valid only for T instances. public var creditSpecification: EC2ClientTypes.CreditSpecificationRequest? - /// Indicates whether to enable the instance for stop protection. For more information, see [Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). + /// Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the Amazon Elastic Compute Cloud User Guide. public var disableApiStop: Swift.Bool? /// If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance by running the shutdown command from the instance. public var disableApiTermination: Swift.Bool? @@ -152313,7 +152333,7 @@ extension EC2ClientTypes { public var cpuOptions: EC2ClientTypes.LaunchTemplateCpuOptions? /// The credit option for CPU usage of the instance. public var creditSpecification: EC2ClientTypes.CreditSpecification? - /// Indicates whether the instance is enabled for stop protection. For more information, see [Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). + /// Indicates whether the instance is enabled for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the Amazon Elastic Compute Cloud User Guide. public var disableApiStop: Swift.Bool? /// If set to true, indicates that the instance cannot be terminated using the Amazon EC2 console, command line tool, or API. public var disableApiTermination: Swift.Bool? @@ -153704,7 +153724,7 @@ public struct RevokeSecurityGroupIngressInput: Swift.Equatable { public var cidrIp: Swift.String? /// Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation. public var dryRun: Swift.Bool? - /// The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types. + /// If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP, this is the type number. A value of -1 indicates all ICMP types. public var fromPort: Swift.Int? /// The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. public var groupId: Swift.String? @@ -153720,7 +153740,7 @@ public struct RevokeSecurityGroupIngressInput: Swift.Equatable { public var sourceSecurityGroupName: Swift.String? /// [EC2-Classic] The Amazon Web Services account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead. public var sourceSecurityGroupOwnerId: Swift.String? - /// The end of port range for the TCP and UDP protocols, or an ICMP code number. For the ICMP code number, use -1 to specify all ICMP codes for the ICMP type. + /// If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP, this is the code. A value of -1 indicates all ICMP codes. public var toPort: Swift.Int? public init ( @@ -154915,7 +154935,7 @@ public struct RunInstancesInput: Swift.Equatable { public var ramdiskId: Swift.String? /// The IDs of the security groups. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html). If you specify a network interface, you must specify any security groups as part of the network interface. public var securityGroupIds: [Swift.String]? - /// [EC2-Classic, default VPC] The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface. Default: Amazon EC2 uses the default security group. + /// [EC2-Classic, default VPC] The names of the security groups. If you specify a network interface, you must specify any security groups as part of the network interface. Default: Amazon EC2 uses the default security group. public var securityGroups: [Swift.String]? /// [EC2-VPC] The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface. public var subnetId: Swift.String? @@ -158260,7 +158280,7 @@ extension EC2ClientTypes { public var cidrIpv6: Swift.String? /// The security group rule description. public var description: Swift.String? - /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var fromPort: Swift.Int? /// The ID of the security group. public var groupId: Swift.String? @@ -158278,7 +158298,7 @@ extension EC2ClientTypes { public var securityGroupRuleId: Swift.String? /// The tags applied to the security group rule. public var tags: [EC2ClientTypes.Tag]? - /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var toPort: Swift.Int? public init ( @@ -158441,7 +158461,7 @@ extension EC2ClientTypes { public var cidrIpv6: Swift.String? /// The description of the security group rule. public var description: Swift.String? - /// The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var fromPort: Swift.Int? /// The IP protocol name (tcp, udp, icmp, icmpv6) or number (see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). Use -1 to specify all protocols. public var ipProtocol: Swift.String? @@ -158449,7 +158469,7 @@ extension EC2ClientTypes { public var prefixListId: Swift.String? /// The ID of the security group that is referenced in the security group rule. public var referencedGroupId: Swift.String? - /// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. + /// If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes. public var toPort: Swift.Int? public init ( @@ -158955,7 +158975,7 @@ extension EC2ClientTypes { public var serviceType: [EC2ClientTypes.ServiceTypeDetail]? /// The supported IP address types. public var supportedIpAddressTypes: [EC2ClientTypes.ServiceConnectivityType]? - /// Any tags assigned to the service. + /// The tags assigned to the service. public var tags: [EC2ClientTypes.Tag]? public init ( @@ -159316,7 +159336,7 @@ extension EC2ClientTypes { public var serviceType: [EC2ClientTypes.ServiceTypeDetail]? /// The supported IP address types. public var supportedIpAddressTypes: [EC2ClientTypes.ServiceConnectivityType]? - /// Any tags assigned to the service. + /// The tags assigned to the service. public var tags: [EC2ClientTypes.Tag]? /// Indicates whether the service supports endpoint policies. public var vpcEndpointPolicySupported: Swift.Bool? @@ -161540,7 +161560,7 @@ extension EC2ClientTypes { /// The number of units to request for the Spot Fleet. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain, you can specify a target capacity of 0 and add capacity later. /// This member is required. public var targetCapacity: Swift.Int? - /// The unit for the target capacity. Default: units (translates to number of instances) + /// The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified. Default: units (translates to number of instances) public var targetCapacityUnitType: EC2ClientTypes.TargetCapacityUnitType? /// Indicates whether running Spot Instances are terminated when the Spot Fleet request expires. public var terminateInstancesWithExpiration: Swift.Bool? @@ -165421,7 +165441,7 @@ extension EC2ClientTypes { public var onDemandTargetCapacity: Swift.Int? /// The maximum number of Spot units to launch. If you specify a target capacity for On-Demand units, you cannot specify a target capacity for Spot units. public var spotTargetCapacity: Swift.Int? - /// The unit for the target capacity. Default: units (translates to number of instances) + /// The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified. Default: units (translates to number of instances) public var targetCapacityUnitType: EC2ClientTypes.TargetCapacityUnitType? /// The number of units to request, filled using DefaultTargetCapacityType. public var totalTargetCapacity: Swift.Int? @@ -165496,7 +165516,7 @@ extension EC2ClientTypes { public var onDemandTargetCapacity: Swift.Int? /// The number of Spot units to request. public var spotTargetCapacity: Swift.Int? - /// The unit for the target capacity. Default: units (translates to number of instances) + /// The unit for the target capacity. TargetCapacityUnitType can only be specified when InstanceRequirements is specified. Default: units (translates to number of instances) public var targetCapacityUnitType: EC2ClientTypes.TargetCapacityUnitType? /// The number of units to request, filled using DefaultTargetCapacityType. /// This member is required. @@ -178236,7 +178256,7 @@ extension EC2ClientTypes { public var ipAddressType: EC2ClientTypes.IpAddressType? /// The last error that occurred for endpoint. public var lastError: EC2ClientTypes.LastError? - /// (Interface endpoint) One or more network interfaces for the endpoint. + /// (Interface endpoint) The network interfaces for the endpoint. public var networkInterfaceIds: [Swift.String]? /// The ID of the Amazon Web Services account that owns the endpoint. public var ownerId: Swift.String? @@ -178246,7 +178266,7 @@ extension EC2ClientTypes { public var privateDnsEnabled: Swift.Bool? /// Indicates whether the endpoint is being managed by its service. public var requesterManaged: Swift.Bool? - /// (Gateway endpoint) One or more route tables associated with the endpoint. + /// (Gateway endpoint) The IDs of the route tables associated with the endpoint. public var routeTableIds: [Swift.String]? /// The name of the service to which the endpoint is associated. public var serviceName: Swift.String? @@ -178254,7 +178274,7 @@ extension EC2ClientTypes { public var state: EC2ClientTypes.State? /// (Interface endpoint) The subnets for the endpoint. public var subnetIds: [Swift.String]? - /// Any tags assigned to the endpoint. + /// The tags assigned to the endpoint. public var tags: [EC2ClientTypes.Tag]? /// The ID of the endpoint. public var vpcEndpointId: Swift.String? diff --git a/Sources/Services/AWSECR/Paginators.swift b/Sources/Services/AWSECR/Paginators.swift index 2251a8b5f12..fc89889ac24 100644 --- a/Sources/Services/AWSECR/Paginators.swift +++ b/Sources/Services/AWSECR/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` extension ECRClient { + /// Paginate over `[DescribeImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` public func describeImagesPaginated(input: DescribeImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImagesInput.nextToken, outputKey: \DescribeImagesOutputResponse.nextToken, paginationFunction: self.describeImages(input:)) } @@ -29,24 +28,23 @@ extension DescribeImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` -/// to access the nested member `[ECRClientTypes.ImageDetail]` -/// - Returns: `[ECRClientTypes.ImageDetail]` extension PaginatorSequence where Input == DescribeImagesInput, Output == DescribeImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` + /// to access the nested member `[ECRClientTypes.ImageDetail]` + /// - Returns: `[ECRClientTypes.ImageDetail]` public func imageDetails() async throws -> [ECRClientTypes.ImageDetail] { return try await self.asyncCompactMap { item in item.imageDetails } } } - -/// Paginate over `[DescribeImageScanFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImageScanFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImageScanFindingsOutputResponse` extension ECRClient { + /// Paginate over `[DescribeImageScanFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImageScanFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImageScanFindingsOutputResponse` public func describeImageScanFindingsPaginated(input: DescribeImageScanFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImageScanFindingsInput.nextToken, outputKey: \DescribeImageScanFindingsOutputResponse.nextToken, paginationFunction: self.describeImageScanFindings(input:)) } @@ -62,16 +60,15 @@ extension DescribeImageScanFindingsInput: ClientRuntime.PaginateToken { repositoryName: self.repositoryName )} } - -/// Paginate over `[DescribePullThroughCacheRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePullThroughCacheRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePullThroughCacheRulesOutputResponse` extension ECRClient { + /// Paginate over `[DescribePullThroughCacheRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePullThroughCacheRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePullThroughCacheRulesOutputResponse` public func describePullThroughCacheRulesPaginated(input: DescribePullThroughCacheRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePullThroughCacheRulesInput.nextToken, outputKey: \DescribePullThroughCacheRulesOutputResponse.nextToken, paginationFunction: self.describePullThroughCacheRules(input:)) } @@ -86,16 +83,15 @@ extension DescribePullThroughCacheRulesInput: ClientRuntime.PaginateToken { registryId: self.registryId )} } - -/// Paginate over `[DescribeRepositoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRepositoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRepositoriesOutputResponse` extension ECRClient { + /// Paginate over `[DescribeRepositoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRepositoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRepositoriesOutputResponse` public func describeRepositoriesPaginated(input: DescribeRepositoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRepositoriesInput.nextToken, outputKey: \DescribeRepositoriesOutputResponse.nextToken, paginationFunction: self.describeRepositories(input:)) } @@ -111,24 +107,23 @@ extension DescribeRepositoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRepositoriesPaginated` -/// to access the nested member `[ECRClientTypes.Repository]` -/// - Returns: `[ECRClientTypes.Repository]` extension PaginatorSequence where Input == DescribeRepositoriesInput, Output == DescribeRepositoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRepositoriesPaginated` + /// to access the nested member `[ECRClientTypes.Repository]` + /// - Returns: `[ECRClientTypes.Repository]` public func repositories() async throws -> [ECRClientTypes.Repository] { return try await self.asyncCompactMap { item in item.repositories } } } - -/// Paginate over `[GetLifecyclePolicyPreviewOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLifecyclePolicyPreviewInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLifecyclePolicyPreviewOutputResponse` extension ECRClient { + /// Paginate over `[GetLifecyclePolicyPreviewOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLifecyclePolicyPreviewInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLifecyclePolicyPreviewOutputResponse` public func getLifecyclePolicyPreviewPaginated(input: GetLifecyclePolicyPreviewInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLifecyclePolicyPreviewInput.nextToken, outputKey: \GetLifecyclePolicyPreviewOutputResponse.nextToken, paginationFunction: self.getLifecyclePolicyPreview(input:)) } @@ -146,24 +141,23 @@ extension GetLifecyclePolicyPreviewInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getLifecyclePolicyPreviewPaginated` -/// to access the nested member `[ECRClientTypes.LifecyclePolicyPreviewResult]` -/// - Returns: `[ECRClientTypes.LifecyclePolicyPreviewResult]` extension PaginatorSequence where Input == GetLifecyclePolicyPreviewInput, Output == GetLifecyclePolicyPreviewOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getLifecyclePolicyPreviewPaginated` + /// to access the nested member `[ECRClientTypes.LifecyclePolicyPreviewResult]` + /// - Returns: `[ECRClientTypes.LifecyclePolicyPreviewResult]` public func previewResults() async throws -> [ECRClientTypes.LifecyclePolicyPreviewResult] { return try await self.asyncCompactMap { item in item.previewResults } } } - -/// Paginate over `[ListImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` extension ECRClient { + /// Paginate over `[ListImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` public func listImagesPaginated(input: ListImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagesInput.nextToken, outputKey: \ListImagesOutputResponse.nextToken, paginationFunction: self.listImages(input:)) } @@ -180,10 +174,10 @@ extension ListImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImagesPaginated` -/// to access the nested member `[ECRClientTypes.ImageIdentifier]` -/// - Returns: `[ECRClientTypes.ImageIdentifier]` extension PaginatorSequence where Input == ListImagesInput, Output == ListImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagesPaginated` + /// to access the nested member `[ECRClientTypes.ImageIdentifier]` + /// - Returns: `[ECRClientTypes.ImageIdentifier]` public func imageIds() async throws -> [ECRClientTypes.ImageIdentifier] { return try await self.asyncCompactMap { item in item.imageIds } } diff --git a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift index 36448b4efcd..6f14ab5b559 100644 --- a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift +++ b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift @@ -205,7 +205,7 @@ public struct ECRPUBLICClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFacto } extension ECRPUBLICClient: ECRPUBLICClientProtocol { - /// Checks the availability of one or more image layers within a repository in a public registry. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Checks the availability of one or more image layers that are within a repository in a public registry. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func batchCheckLayerAvailability(input: BatchCheckLayerAvailabilityInput) async throws -> BatchCheckLayerAvailabilityOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -224,7 +224,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchCheckLayerAvailability") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -241,7 +244,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Deletes a list of specified images within a repository in a public registry. Images are specified with either an imageTag or imageDigest. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the image's digest in your request. + /// Deletes a list of specified images that are within a repository in a public registry. Images are specified with either an imageTag or imageDigest. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the digest of the image in your request. public func batchDeleteImage(input: BatchDeleteImageInput) async throws -> BatchDeleteImageOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -260,7 +263,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchDeleteImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -277,7 +283,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Informs Amazon ECR that the image layer upload has completed for a specified public registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Informs Amazon ECR that the image layer upload is complete for a specified public registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once for each new image layer to verify that the upload is complete. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func completeLayerUpload(input: CompleteLayerUploadInput) async throws -> CompleteLayerUploadOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -296,7 +302,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "completeLayerUpload") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -332,7 +341,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "createRepository") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -349,7 +361,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Deletes a repository in a public registry. If the repository contains images, you must either delete all images in the repository or use the force option which deletes all images on your behalf before deleting the repository. + /// Deletes a repository in a public registry. If the repository contains images, you must either manually delete all images in the repository or use the force option. This option deletes all images on your behalf before deleting the repository. public func deleteRepository(input: DeleteRepositoryInput) async throws -> DeleteRepositoryOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -368,7 +380,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteRepository") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -385,7 +400,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Deletes the repository policy associated with the specified repository. + /// Deletes the repository policy that's associated with the specified repository. public func deleteRepositoryPolicy(input: DeleteRepositoryPolicyInput) async throws -> DeleteRepositoryPolicyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -404,7 +419,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteRepositoryPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -440,7 +458,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeImageTags") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -457,7 +478,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Returns metadata about the images in a repository in a public registry. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by [DescribeImages]. + /// Returns metadata that's related to the images in a repository in a public registry. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size. Therefore, it might return a larger image size than the image sizes that are returned by [DescribeImages]. public func describeImages(input: DescribeImagesInput) async throws -> DescribeImagesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -476,7 +497,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeImages") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -512,7 +536,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeRegistries") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -529,7 +556,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Describes repositories in a public registry. + /// Describes repositories that are in a public registry. public func describeRepositories(input: DescribeRepositoriesInput) async throws -> DescribeRepositoriesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -548,7 +575,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeRepositories") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -565,7 +595,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Retrieves an authorization token. An authorization token represents your IAM authentication credentials and can be used to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. This API requires the ecr-public:GetAuthorizationToken and sts:GetServiceBearerToken permissions. + /// Retrieves an authorization token. An authorization token represents your IAM authentication credentials. You can use it to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. This API requires the ecr-public:GetAuthorizationToken and sts:GetServiceBearerToken permissions. public func getAuthorizationToken(input: GetAuthorizationTokenInput) async throws -> GetAuthorizationTokenOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -584,7 +614,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAuthorizationToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -620,7 +653,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRegistryCatalogData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -656,7 +692,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRepositoryCatalogData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -692,7 +731,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRepositoryPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -709,7 +751,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once per image layer that has not already been uploaded. Whether or not an image layer has been uploaded is determined by the BatchCheckLayerAvailability API action. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once for each image layer that hasn't already been uploaded. Whether an image layer uploads is determined by the BatchCheckLayerAvailability API action. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func initiateLayerUpload(input: InitiateLayerUploadInput) async throws -> InitiateLayerUploadOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -728,7 +770,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "initiateLayerUpload") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -764,7 +809,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -781,7 +829,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Creates or updates the image manifest and tags associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags associated with the image. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Creates or updates the image manifest and tags that are associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags that are associated with the image. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func putImage(input: PutImageInput) async throws -> PutImageOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -800,7 +848,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "putImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -817,7 +868,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Create or updates the catalog data for a public registry. + /// Create or update the catalog data for a public registry. public func putRegistryCatalogData(input: PutRegistryCatalogDataInput) async throws -> PutRegistryCatalogDataOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -836,7 +887,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "putRegistryCatalogData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -872,7 +926,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "putRepositoryCatalogData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -908,7 +965,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "setRepositoryPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -925,7 +985,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well. + /// Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted. public func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -944,7 +1004,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -980,7 +1043,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -997,7 +1063,7 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { return result } - /// Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called once per each new image layer part. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (about 20MB). The UploadLayerPart API is called once for each new image layer part. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. public func uploadLayerPart(input: UploadLayerPartInput) async throws -> UploadLayerPartOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1016,7 +1082,10 @@ extension ECRPUBLICClient: ECRPUBLICClientProtocol { var operation = ClientRuntime.OperationStack(id: "uploadLayerPart") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift index 4e249616c3a..6c1529f393d 100644 --- a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift +++ b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift @@ -3,29 +3,29 @@ import AWSClientRuntime import ClientRuntime -/// Amazon Elastic Container Registry Public Amazon Elastic Container Registry (Amazon ECR) is a managed container image registry service. Amazon ECR provides both public and private registries to host your container images. You can use the familiar Docker CLI, or their preferred client, to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports public repositories with this API. For information about the Amazon ECR API for private repositories, see [Amazon Elastic Container Registry API Reference](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html). +/// Amazon Elastic Container Registry Public Amazon Elastic Container Registry Public (Amazon ECR Public) is a managed container image registry service. Amazon ECR provides both public and private registries to host your container images. You can use the Docker CLI or your preferred client to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports public repositories with this API. For information about the Amazon ECR API for private repositories, see [Amazon Elastic Container Registry API Reference](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html). public protocol ECRPUBLICClientProtocol { - /// Checks the availability of one or more image layers within a repository in a public registry. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Checks the availability of one or more image layers that are within a repository in a public registry. When an image is pushed to a repository, each image layer is checked to verify if it has been uploaded before. If it has been uploaded, then the image layer is skipped. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. func batchCheckLayerAvailability(input: BatchCheckLayerAvailabilityInput) async throws -> BatchCheckLayerAvailabilityOutputResponse - /// Deletes a list of specified images within a repository in a public registry. Images are specified with either an imageTag or imageDigest. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the image's digest in your request. + /// Deletes a list of specified images that are within a repository in a public registry. Images are specified with either an imageTag or imageDigest. You can remove a tag from an image by specifying the image's tag in your request. When you remove the last tag from an image, the image is deleted from your repository. You can completely delete an image (and all of its tags) by specifying the digest of the image in your request. func batchDeleteImage(input: BatchDeleteImageInput) async throws -> BatchDeleteImageOutputResponse - /// Informs Amazon ECR that the image layer upload has completed for a specified public registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once per each new image layer to verify that the upload has completed. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Informs Amazon ECR that the image layer upload is complete for a specified public registry, repository name, and upload ID. You can optionally provide a sha256 digest of the image layer for data validation purposes. When an image is pushed, the CompleteLayerUpload API is called once for each new image layer to verify that the upload is complete. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. func completeLayerUpload(input: CompleteLayerUploadInput) async throws -> CompleteLayerUploadOutputResponse /// Creates a repository in a public registry. For more information, see [Amazon ECR repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the Amazon Elastic Container Registry User Guide. func createRepository(input: CreateRepositoryInput) async throws -> CreateRepositoryOutputResponse - /// Deletes a repository in a public registry. If the repository contains images, you must either delete all images in the repository or use the force option which deletes all images on your behalf before deleting the repository. + /// Deletes a repository in a public registry. If the repository contains images, you must either manually delete all images in the repository or use the force option. This option deletes all images on your behalf before deleting the repository. func deleteRepository(input: DeleteRepositoryInput) async throws -> DeleteRepositoryOutputResponse - /// Deletes the repository policy associated with the specified repository. + /// Deletes the repository policy that's associated with the specified repository. func deleteRepositoryPolicy(input: DeleteRepositoryPolicyInput) async throws -> DeleteRepositoryPolicyOutputResponse - /// Returns metadata about the images in a repository in a public registry. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by [DescribeImages]. + /// Returns metadata that's related to the images in a repository in a public registry. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size. Therefore, it might return a larger image size than the image sizes that are returned by [DescribeImages]. func describeImages(input: DescribeImagesInput) async throws -> DescribeImagesOutputResponse /// Returns the image tag details for a repository in a public registry. func describeImageTags(input: DescribeImageTagsInput) async throws -> DescribeImageTagsOutputResponse /// Returns details for a public registry. func describeRegistries(input: DescribeRegistriesInput) async throws -> DescribeRegistriesOutputResponse - /// Describes repositories in a public registry. + /// Describes repositories that are in a public registry. func describeRepositories(input: DescribeRepositoriesInput) async throws -> DescribeRepositoriesOutputResponse - /// Retrieves an authorization token. An authorization token represents your IAM authentication credentials and can be used to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. This API requires the ecr-public:GetAuthorizationToken and sts:GetServiceBearerToken permissions. + /// Retrieves an authorization token. An authorization token represents your IAM authentication credentials. You can use it to access any Amazon ECR registry that your IAM principal has access to. The authorization token is valid for 12 hours. This API requires the ecr-public:GetAuthorizationToken and sts:GetServiceBearerToken permissions. func getAuthorizationToken(input: GetAuthorizationTokenInput) async throws -> GetAuthorizationTokenOutputResponse /// Retrieves catalog metadata for a public registry. func getRegistryCatalogData(input: GetRegistryCatalogDataInput) async throws -> GetRegistryCatalogDataOutputResponse @@ -33,23 +33,23 @@ public protocol ECRPUBLICClientProtocol { func getRepositoryCatalogData(input: GetRepositoryCatalogDataInput) async throws -> GetRepositoryCatalogDataOutputResponse /// Retrieves the repository policy for the specified repository. func getRepositoryPolicy(input: GetRepositoryPolicyInput) async throws -> GetRepositoryPolicyOutputResponse - /// Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once per image layer that has not already been uploaded. Whether or not an image layer has been uploaded is determined by the BatchCheckLayerAvailability API action. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Notifies Amazon ECR that you intend to upload an image layer. When an image is pushed, the InitiateLayerUpload API is called once for each image layer that hasn't already been uploaded. Whether an image layer uploads is determined by the BatchCheckLayerAvailability API action. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. func initiateLayerUpload(input: InitiateLayerUploadInput) async throws -> InitiateLayerUploadOutputResponse /// List the tags for an Amazon ECR Public resource. func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutputResponse - /// Creates or updates the image manifest and tags associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags associated with the image. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Creates or updates the image manifest and tags that are associated with an image. When an image is pushed and all new image layers have been uploaded, the PutImage API is called once to create or update the image manifest and the tags that are associated with the image. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. func putImage(input: PutImageInput) async throws -> PutImageOutputResponse - /// Create or updates the catalog data for a public registry. + /// Create or update the catalog data for a public registry. func putRegistryCatalogData(input: PutRegistryCatalogDataInput) async throws -> PutRegistryCatalogDataOutputResponse /// Creates or updates the catalog data for a repository in a public registry. func putRepositoryCatalogData(input: PutRepositoryCatalogDataInput) async throws -> PutRepositoryCatalogDataOutputResponse /// Applies a repository policy to the specified public repository to control access permissions. For more information, see [Amazon ECR Repository Policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html) in the Amazon Elastic Container Registry User Guide. func setRepositoryPolicy(input: SetRepositoryPolicyInput) async throws -> SetRepositoryPolicyOutputResponse - /// Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well. + /// Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted. func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse /// Deletes specified tags from a resource. func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutputResponse - /// Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API is called once per each new image layer part. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. + /// Uploads an image layer part to Amazon ECR. When an image is pushed, each new image layer is uploaded in parts. The maximum size of each image layer part can be 20971520 bytes (about 20MB). The UploadLayerPart API is called once for each new image layer part. This operation is used by the Amazon ECR proxy and is not generally used by customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images. func uploadLayerPart(input: UploadLayerPartInput) async throws -> UploadLayerPartOutputResponse } diff --git a/Sources/Services/AWSECRPUBLIC/EndpointResolver.swift b/Sources/Services/AWSECRPUBLIC/EndpointResolver.swift index 9e6da671f57..6f330725c55 100644 --- a/Sources/Services/AWSECRPUBLIC/EndpointResolver.swift +++ b/Sources/Services/AWSECRPUBLIC/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://api.ecr-public.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSECRPUBLIC/Paginators.swift b/Sources/Services/AWSECRPUBLIC/Paginators.swift index 0ad2c966df5..dbbc80aff24 100644 --- a/Sources/Services/AWSECRPUBLIC/Paginators.swift +++ b/Sources/Services/AWSECRPUBLIC/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` extension ECRPUBLICClient { + /// Paginate over `[DescribeImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImagesOutputResponse` public func describeImagesPaginated(input: DescribeImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImagesInput.nextToken, outputKey: \DescribeImagesOutputResponse.nextToken, paginationFunction: self.describeImages(input:)) } @@ -28,24 +27,23 @@ extension DescribeImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` -/// to access the nested member `[ECRPUBLICClientTypes.ImageDetail]` -/// - Returns: `[ECRPUBLICClientTypes.ImageDetail]` extension PaginatorSequence where Input == DescribeImagesInput, Output == DescribeImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImagesPaginated` + /// to access the nested member `[ECRPUBLICClientTypes.ImageDetail]` + /// - Returns: `[ECRPUBLICClientTypes.ImageDetail]` public func imageDetails() async throws -> [ECRPUBLICClientTypes.ImageDetail] { return try await self.asyncCompactMap { item in item.imageDetails } } } - -/// Paginate over `[DescribeImageTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeImageTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeImageTagsOutputResponse` extension ECRPUBLICClient { + /// Paginate over `[DescribeImageTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeImageTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeImageTagsOutputResponse` public func describeImageTagsPaginated(input: DescribeImageTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeImageTagsInput.nextToken, outputKey: \DescribeImageTagsOutputResponse.nextToken, paginationFunction: self.describeImageTags(input:)) } @@ -61,24 +59,23 @@ extension DescribeImageTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeImageTagsPaginated` -/// to access the nested member `[ECRPUBLICClientTypes.ImageTagDetail]` -/// - Returns: `[ECRPUBLICClientTypes.ImageTagDetail]` extension PaginatorSequence where Input == DescribeImageTagsInput, Output == DescribeImageTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeImageTagsPaginated` + /// to access the nested member `[ECRPUBLICClientTypes.ImageTagDetail]` + /// - Returns: `[ECRPUBLICClientTypes.ImageTagDetail]` public func imageTagDetails() async throws -> [ECRPUBLICClientTypes.ImageTagDetail] { return try await self.asyncCompactMap { item in item.imageTagDetails } } } - -/// Paginate over `[DescribeRegistriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRegistriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRegistriesOutputResponse` extension ECRPUBLICClient { + /// Paginate over `[DescribeRegistriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRegistriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRegistriesOutputResponse` public func describeRegistriesPaginated(input: DescribeRegistriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRegistriesInput.nextToken, outputKey: \DescribeRegistriesOutputResponse.nextToken, paginationFunction: self.describeRegistries(input:)) } @@ -92,24 +89,23 @@ extension DescribeRegistriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRegistriesPaginated` -/// to access the nested member `[ECRPUBLICClientTypes.Registry]` -/// - Returns: `[ECRPUBLICClientTypes.Registry]` extension PaginatorSequence where Input == DescribeRegistriesInput, Output == DescribeRegistriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRegistriesPaginated` + /// to access the nested member `[ECRPUBLICClientTypes.Registry]` + /// - Returns: `[ECRPUBLICClientTypes.Registry]` public func registries() async throws -> [ECRPUBLICClientTypes.Registry] { return try await self.asyncCompactMap { item in item.registries } } } - -/// Paginate over `[DescribeRepositoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRepositoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRepositoriesOutputResponse` extension ECRPUBLICClient { + /// Paginate over `[DescribeRepositoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRepositoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRepositoriesOutputResponse` public func describeRepositoriesPaginated(input: DescribeRepositoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRepositoriesInput.nextToken, outputKey: \DescribeRepositoriesOutputResponse.nextToken, paginationFunction: self.describeRepositories(input:)) } @@ -125,10 +121,10 @@ extension DescribeRepositoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeRepositoriesPaginated` -/// to access the nested member `[ECRPUBLICClientTypes.Repository]` -/// - Returns: `[ECRPUBLICClientTypes.Repository]` extension PaginatorSequence where Input == DescribeRepositoriesInput, Output == DescribeRepositoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeRepositoriesPaginated` + /// to access the nested member `[ECRPUBLICClientTypes.Repository]` + /// - Returns: `[ECRPUBLICClientTypes.Repository]` public func repositories() async throws -> [ECRPUBLICClientTypes.Repository] { return try await self.asyncCompactMap { item in item.repositories } } diff --git a/Sources/Services/AWSECRPUBLIC/models/Models.swift b/Sources/Services/AWSECRPUBLIC/models/Models.swift index 55f05b24114..4e16b7e386f 100644 --- a/Sources/Services/AWSECRPUBLIC/models/Models.swift +++ b/Sources/Services/AWSECRPUBLIC/models/Models.swift @@ -30,7 +30,7 @@ extension ECRPUBLICClientTypes.AuthorizationData: Swift.Codable { extension ECRPUBLICClientTypes { /// An authorization token data object that corresponds to a public registry. public struct AuthorizationData: Swift.Equatable { - /// A base64-encoded string that contains authorization data for a public Amazon ECR registry. When the string is decoded, it is presented in the format user:password for public registry authentication using docker login. + /// A base64-encoded string that contains authorization data for a public Amazon ECR registry. When the string is decoded, it's presented in the format user:password for public registry authentication using docker login. public var authorizationToken: Swift.String? /// The Unix time in seconds and milliseconds when the authorization token expires. Authorization tokens are valid for 12 hours. public var expiresAt: ClientRuntime.Date? @@ -81,9 +81,9 @@ public struct BatchCheckLayerAvailabilityInput: Swift.Equatable { /// The digests of the image layers to check. /// This member is required. public var layerDigests: [Swift.String]? - /// The AWS account ID associated with the public registry that contains the image layers to check. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID, or registry alias, associated with the public registry that contains the image layers to check. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? - /// The name of the repository that is associated with the image layers to check. + /// The name of the repository that's associated with the image layers to check. /// This member is required. public var repositoryName: Swift.String? @@ -147,6 +147,7 @@ extension BatchCheckLayerAvailabilityOutputError { case "RegistryNotFoundException" : self = .registryNotFoundException(try RegistryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -157,6 +158,7 @@ public enum BatchCheckLayerAvailabilityOutputError: Swift.Error, Swift.Equatable case registryNotFoundException(RegistryNotFoundException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -178,7 +180,7 @@ extension BatchCheckLayerAvailabilityOutputResponse: ClientRuntime.HttpResponseB public struct BatchCheckLayerAvailabilityOutputResponse: Swift.Equatable { /// Any failures associated with the call. public var failures: [ECRPUBLICClientTypes.LayerFailure]? - /// A list of image layer objects corresponding to the image layer references in the request. + /// A list of image layer objects that correspond to the image layer references in the request. public var layers: [ECRPUBLICClientTypes.Layer]? public init ( @@ -263,7 +265,7 @@ public struct BatchDeleteImageInput: Swift.Equatable { /// A list of image ID references that correspond to images to delete. The format of the imageIds reference is imageTag=tag or imageDigest=digest. /// This member is required. public var imageIds: [ECRPUBLICClientTypes.ImageIdentifier]? - /// The AWS account ID associated with the registry that contains the image to delete. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the registry that contains the image to delete. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The repository in a public registry that contains the image to delete. /// This member is required. @@ -328,6 +330,7 @@ extension BatchDeleteImageOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -337,6 +340,7 @@ public enum BatchDeleteImageOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -447,7 +451,7 @@ public struct CompleteLayerUploadInput: Swift.Equatable { /// The sha256 digest of the image layer. /// This member is required. public var layerDigests: [Swift.String]? - /// The AWS account ID associated with the registry to which to upload layers. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID, or registry alias, associated with the registry where layers are uploaded. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository in a public registry to associate with the image layer. /// This member is required. @@ -569,11 +573,11 @@ extension CompleteLayerUploadOutputResponse: ClientRuntime.HttpResponseBinding { public struct CompleteLayerUploadOutputResponse: Swift.Equatable { /// The sha256 digest of the image layer. public var layerDigest: Swift.String? - /// The public registry ID associated with the request. + /// The public registry ID that's associated with the request. public var registryId: Swift.String? - /// The repository name associated with the request. + /// The repository name that's associated with the request. public var repositoryName: Swift.String? - /// The upload ID associated with the layer. + /// The upload ID that's associated with the layer. public var uploadId: Swift.String? public init ( @@ -651,10 +655,10 @@ extension CreateRepositoryInput: ClientRuntime.URLPathProvider { public struct CreateRepositoryInput: Swift.Equatable { /// The details about the repository that are publicly visible in the Amazon ECR Public Gallery. public var catalogData: ECRPUBLICClientTypes.RepositoryCatalogDataInput? - /// The name to use for the repository. This appears publicly in the Amazon ECR Public Gallery. The repository name may be specified on its own (such as nginx-web-app) or it can be prepended with a namespace to group the repository into a category (such as project-a/nginx-web-app). + /// The name to use for the repository. This appears publicly in the Amazon ECR Public Gallery. The repository name can be specified on its own (for example nginx-web-app) or prepended with a namespace to group the repository into a category (for example project-a/nginx-web-app). /// This member is required. public var repositoryName: Swift.String? - /// The metadata that you apply to the repository to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + /// The metadata that you apply to each repository to help categorize and organize your repositories. Each tag consists of a key and an optional value. You define both of them. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. public var tags: [ECRPUBLICClientTypes.Tag]? public init ( @@ -719,6 +723,7 @@ extension CreateRepositoryOutputError { case "RepositoryAlreadyExistsException" : self = .repositoryAlreadyExistsException(try RepositoryAlreadyExistsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "TooManyTagsException" : self = .tooManyTagsException(try TooManyTagsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -731,6 +736,7 @@ public enum CreateRepositoryOutputError: Swift.Error, Swift.Equatable { case repositoryAlreadyExistsException(RepositoryAlreadyExistsException) case serverException(ServerException) case tooManyTagsException(TooManyTagsException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -813,9 +819,9 @@ extension DeleteRepositoryInput: ClientRuntime.URLPathProvider { } public struct DeleteRepositoryInput: Swift.Equatable { - /// If a repository contains images, forces the deletion. + /// The force option can be used to delete a repository that contains images. If the force option is not used, the repository must be empty prior to deletion. public var force: Swift.Bool - /// The AWS account ID associated with the public registry that contains the repository to delete. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository to delete. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository to delete. /// This member is required. @@ -872,6 +878,7 @@ extension DeleteRepositoryOutputError { case "RepositoryNotEmptyException" : self = .repositoryNotEmptyException(try RepositoryNotEmptyException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -882,6 +889,7 @@ public enum DeleteRepositoryOutputError: Swift.Error, Swift.Equatable { case repositoryNotEmptyException(RepositoryNotEmptyException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -950,9 +958,9 @@ extension DeleteRepositoryPolicyInput: ClientRuntime.URLPathProvider { } public struct DeleteRepositoryPolicyInput: Swift.Equatable { - /// The AWS account ID associated with the public registry that contains the repository policy to delete. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository policy to delete. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? - /// The name of the repository that is associated with the repository policy to delete. + /// The name of the repository that's associated with the repository policy to delete. /// This member is required. public var repositoryName: Swift.String? @@ -1001,6 +1009,7 @@ extension DeleteRepositoryPolicyOutputError { case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryPolicyNotFoundException" : self = .repositoryPolicyNotFoundException(try RepositoryPolicyNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -1011,6 +1020,7 @@ public enum DeleteRepositoryPolicyOutputError: Swift.Error, Swift.Equatable { case repositoryNotFoundException(RepositoryNotFoundException) case repositoryPolicyNotFoundException(RepositoryPolicyNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -1034,9 +1044,9 @@ extension DeleteRepositoryPolicyOutputResponse: ClientRuntime.HttpResponseBindin public struct DeleteRepositoryPolicyOutputResponse: Swift.Equatable { /// The JSON repository policy that was deleted from the repository. public var policyText: Swift.String? - /// The registry ID associated with the request. + /// The registry ID that's associated with the request. public var registryId: Swift.String? - /// The repository name associated with the request. + /// The repository name that's associated with the request. public var repositoryName: Swift.String? public init ( @@ -1107,11 +1117,11 @@ extension DescribeImageTagsInput: ClientRuntime.URLPathProvider { } public struct DescribeImageTagsInput: Swift.Equatable { - /// The maximum number of repository results returned by DescribeImageTags in paginated output. When this parameter is used, DescribeImageTags only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeImageTags request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeImageTags returns up to 100 results and a nextToken value, if applicable. This option cannot be used when you specify images with imageIds. + /// The maximum number of repository results that's returned by DescribeImageTags in paginated output. When this parameter is used, DescribeImageTags only returns maxResults results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another DescribeImageTags request with the returned nextToken value. This value can be between 1 and 1000. If this parameter isn't used, then DescribeImageTags returns up to 100 results and a nextToken value, if applicable. If you specify images with imageIds, you can't use this option. public var maxResults: Swift.Int? - /// The nextToken value returned from a previous paginated DescribeImageTags request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This option cannot be used when you specify images with imageIds. + /// The nextToken value that's returned from a previous paginated DescribeImageTags request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. If there are no more results to return, this value is null. If you specify images with imageIds, you can't use this option. public var nextToken: Swift.String? - /// The AWS account ID associated with the public registry that contains the repository in which to describe images. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository where images are described. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository that contains the image tag details to describe. /// This member is required. @@ -1173,6 +1183,7 @@ extension DescribeImageTagsOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -1182,6 +1193,7 @@ public enum DescribeImageTagsOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -1203,7 +1215,7 @@ extension DescribeImageTagsOutputResponse: ClientRuntime.HttpResponseBinding { public struct DescribeImageTagsOutputResponse: Swift.Equatable { /// The image tag details for the images in the requested repository. public var imageTagDetails: [ECRPUBLICClientTypes.ImageTagDetail]? - /// The nextToken value to include in a future DescribeImageTags request. When the results of a DescribeImageTags request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + /// The nextToken value to include in a future DescribeImageTags request. When the results of a DescribeImageTags request exceed maxResults, you can use this value to retrieve the next page of results. If there are no more results to return, this value is null. public var nextToken: Swift.String? public init ( @@ -1286,11 +1298,11 @@ extension DescribeImagesInput: ClientRuntime.URLPathProvider { public struct DescribeImagesInput: Swift.Equatable { /// The list of image IDs for the requested repository. public var imageIds: [ECRPUBLICClientTypes.ImageIdentifier]? - /// The maximum number of repository results returned by DescribeImages in paginated output. When this parameter is used, DescribeImages only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeImages request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeImages returns up to 100 results and a nextToken value, if applicable. This option cannot be used when you specify images with imageIds. + /// The maximum number of repository results that's returned by DescribeImages in paginated output. When this parameter is used, DescribeImages only returns maxResults results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another DescribeImages request with the returned nextToken value. This value can be between 1 and 1000. If this parameter isn't used, then DescribeImages returns up to 100 results and a nextToken value, if applicable. If you specify images with imageIds, you can't use this option. public var maxResults: Swift.Int? - /// The nextToken value returned from a previous paginated DescribeImages request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This option cannot be used when you specify images with imageIds. + /// The nextToken value that's returned from a previous paginated DescribeImages request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. If there are no more results to return, this value is null. If you specify images with imageIds, you can't use this option. public var nextToken: Swift.String? - /// The AWS account ID associated with the public registry that contains the repository in which to describe images. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository where images are described. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The repository that contains the images to describe. /// This member is required. @@ -1368,6 +1380,7 @@ extension DescribeImagesOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -1378,6 +1391,7 @@ public enum DescribeImagesOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -1399,7 +1413,7 @@ extension DescribeImagesOutputResponse: ClientRuntime.HttpResponseBinding { public struct DescribeImagesOutputResponse: Swift.Equatable { /// A list of [ImageDetail] objects that contain data about the image. public var imageDetails: [ECRPUBLICClientTypes.ImageDetail]? - /// The nextToken value to include in a future DescribeImages request. When the results of a DescribeImages request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + /// The nextToken value to include in a future DescribeImages request. When the results of a DescribeImages request exceed maxResults, you can use this value to retrieve the next page of results. If there are no more results to return, this value is null. public var nextToken: Swift.String? public init ( @@ -1465,9 +1479,9 @@ extension DescribeRegistriesInput: ClientRuntime.URLPathProvider { } public struct DescribeRegistriesInput: Swift.Equatable { - /// The maximum number of repository results returned by DescribeRegistries in paginated output. When this parameter is used, DescribeRegistries only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeRegistries request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeRegistries returns up to 100 results and a nextToken value, if applicable. + /// The maximum number of repository results that's returned by DescribeRegistries in paginated output. When this parameter is used, DescribeRegistries only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeRegistries request with the returned nextToken value. This value can be between 1 and 1000. If this parameter isn't used, then DescribeRegistries returns up to 100 results and a nextToken value, if applicable. public var maxResults: Swift.Int? - /// The nextToken value returned from a previous paginated DescribeRegistries request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value that's returned from a previous paginated DescribeRegistries request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. If there are no more results to return, this value is null. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public var nextToken: Swift.String? public init ( @@ -1542,9 +1556,9 @@ extension DescribeRegistriesOutputResponse: ClientRuntime.HttpResponseBinding { } public struct DescribeRegistriesOutputResponse: Swift.Equatable { - /// The nextToken value to include in a future DescribeRepositories request. When the results of a DescribeRepositories request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + /// The nextToken value to include in a future DescribeRepositories request. If the results of a DescribeRepositories request exceed maxResults, you can use this value to retrieve the next page of results. If there are no more results, this value is null. public var nextToken: Swift.String? - /// An object containing the details for a public registry. + /// An object that contains the details for a public registry. /// This member is required. public var registries: [ECRPUBLICClientTypes.Registry]? @@ -1622,11 +1636,11 @@ extension DescribeRepositoriesInput: ClientRuntime.URLPathProvider { } public struct DescribeRepositoriesInput: Swift.Equatable { - /// The maximum number of repository results returned by DescribeRepositories in paginated output. When this parameter is used, DescribeRepositories only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeRepositories request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then DescribeRepositories returns up to 100 results and a nextToken value, if applicable. This option cannot be used when you specify repositories with repositoryNames. + /// The maximum number of repository results that's returned by DescribeRepositories in paginated output. When this parameter is used, DescribeRepositories only returns maxResults results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another DescribeRepositories request with the returned nextToken value. This value can be between 1 and 1000. If this parameter isn't used, then DescribeRepositories returns up to 100 results and a nextToken value, if applicable. If you specify repositories with repositoryNames, you can't use this option. public var maxResults: Swift.Int? - /// The nextToken value returned from a previous paginated DescribeRepositories request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This option cannot be used when you specify repositories with repositoryNames. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + /// The nextToken value that's returned from a previous paginated DescribeRepositories request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. If there are no more results to return, this value is null. If you specify repositories with repositoryNames, you can't use this option. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. public var nextToken: Swift.String? - /// The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// A list of repositories to describe. If this parameter is omitted, then all repositories in a registry are described. public var repositoryNames: [Swift.String]? @@ -1696,6 +1710,7 @@ extension DescribeRepositoriesOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -1705,6 +1720,7 @@ public enum DescribeRepositoriesOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -1724,7 +1740,7 @@ extension DescribeRepositoriesOutputResponse: ClientRuntime.HttpResponseBinding } public struct DescribeRepositoriesOutputResponse: Swift.Equatable { - /// The nextToken value to include in a future DescribeRepositories request. When the results of a DescribeRepositories request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + /// The nextToken value to include in a future DescribeRepositories request. When the results of a DescribeRepositories request exceed maxResults, this value can be used to retrieve the next page of results. If there are no more results to return, this value is null. public var nextToken: Swift.String? /// A list of repository objects corresponding to valid repositories. public var repositories: [ECRPUBLICClientTypes.Repository]? @@ -1785,7 +1801,7 @@ extension EmptyUploadException { } } -/// The specified layer upload does not contain any layer parts. +/// The specified layer upload doesn't contain any layer parts. public struct EmptyUploadException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -1861,6 +1877,7 @@ extension GetAuthorizationTokenOutputError { switch errorType { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -1869,6 +1886,7 @@ extension GetAuthorizationTokenOutputError { public enum GetAuthorizationTokenOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -2031,7 +2049,7 @@ extension GetRepositoryCatalogDataInput: ClientRuntime.URLPathProvider { } public struct GetRepositoryCatalogDataInput: Swift.Equatable { - /// The AWS account ID associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the registry that contains the repositories to be described. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository to retrieve the catalog metadata for. /// This member is required. @@ -2079,8 +2097,10 @@ extension GetRepositoryCatalogDataOutputError { public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { switch errorType { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "RepositoryCatalogDataNotFoundException" : self = .repositoryCatalogDataNotFoundException(try RepositoryCatalogDataNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -2088,8 +2108,10 @@ extension GetRepositoryCatalogDataOutputError { public enum GetRepositoryCatalogDataOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) + case repositoryCatalogDataNotFoundException(RepositoryCatalogDataNotFoundException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -2158,7 +2180,7 @@ extension GetRepositoryPolicyInput: ClientRuntime.URLPathProvider { } public struct GetRepositoryPolicyInput: Swift.Equatable { - /// The AWS account ID associated with the public registry that contains the repository. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository with the policy to retrieve. /// This member is required. @@ -2209,6 +2231,7 @@ extension GetRepositoryPolicyOutputError { case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryPolicyNotFoundException" : self = .repositoryPolicyNotFoundException(try RepositoryPolicyNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -2219,6 +2242,7 @@ public enum GetRepositoryPolicyOutputError: Swift.Error, Swift.Equatable { case repositoryNotFoundException(RepositoryNotFoundException) case repositoryPolicyNotFoundException(RepositoryPolicyNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -2240,11 +2264,11 @@ extension GetRepositoryPolicyOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GetRepositoryPolicyOutputResponse: Swift.Equatable { - /// The repository policy text associated with the repository. The policy text will be in JSON format. + /// The repository policy text that's associated with the repository. The policy text will be in JSON format. public var policyText: Swift.String? - /// The registry ID associated with the request. + /// The registry ID that's associated with the request. public var registryId: Swift.String? - /// The repository name associated with the request. + /// The repository name that's associated with the request. public var repositoryName: Swift.String? public init ( @@ -2327,17 +2351,17 @@ extension ECRPUBLICClientTypes.Image: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing an Amazon ECR image. + /// An object that represents an Amazon ECR image. public struct Image: Swift.Equatable { - /// An object containing the image tag and image digest associated with an image. + /// An object that contains the image tag and image digest associated with an image. public var imageId: ECRPUBLICClientTypes.ImageIdentifier? - /// The image manifest associated with the image. + /// The image manifest that's associated with the image. public var imageManifest: Swift.String? /// The manifest media type of the image. public var imageManifestMediaType: Swift.String? - /// The AWS account ID associated with the registry containing the image. + /// The Amazon Web Services account ID that's associated with the registry containing the image. public var registryId: Swift.String? - /// The name of the repository associated with the image. + /// The name of the repository that's associated with the image. public var repositoryName: Swift.String? public init ( @@ -2484,7 +2508,7 @@ extension ECRPUBLICClientTypes.ImageDetail: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object that describes an image returned by a [DescribeImages] operation. + /// An object that describes an image that's returned by a [DescribeImages] operation. public struct ImageDetail: Swift.Equatable { /// The artifact media type of the image. public var artifactMediaType: Swift.String? @@ -2492,15 +2516,15 @@ extension ECRPUBLICClientTypes { public var imageDigest: Swift.String? /// The media type of the image manifest. public var imageManifestMediaType: Swift.String? - /// The date and time, expressed in standard JavaScript date format, at which the current image was pushed to the repository. + /// The date and time, expressed in standard JavaScript date format, that the current image was pushed to the repository at. public var imagePushedAt: ClientRuntime.Date? - /// The size, in bytes, of the image in the repository. If the image is a manifest list, this will be the max size of all manifests in the list. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by [DescribeImages]. + /// The size, in bytes, of the image in the repository. If the image is a manifest list, this is the max size of all manifests in the list. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it might return a larger image size than the image sizes that are returned by [DescribeImages]. public var imageSizeInBytes: Swift.Int? - /// The list of tags associated with this image. + /// The list of tags that's associated with this image. public var imageTags: [Swift.String]? - /// The AWS account ID associated with the public registry to which this image belongs. + /// The Amazon Web Services account ID that's associated with the public registry where this image belongs. public var registryId: Swift.String? - /// The name of the repository to which this image belongs. + /// The name of the repository where this image belongs. public var repositoryName: Swift.String? public init ( @@ -2544,7 +2568,7 @@ extension ImageDigestDoesNotMatchException { } } -/// The specified image digest does not match the digest that Amazon ECR calculated for the image. +/// The specified image digest doesn't match the digest that Amazon ECR calculated for the image. public struct ImageDigestDoesNotMatchException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -2611,13 +2635,13 @@ extension ECRPUBLICClientTypes.ImageFailure: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing an Amazon ECR image failure. + /// An object that represents an Amazon ECR image failure. public struct ImageFailure: Swift.Equatable { - /// The code associated with the failure. + /// The code that's associated with the failure. public var failureCode: ECRPUBLICClientTypes.ImageFailureCode? /// The reason for the failure. public var failureReason: Swift.String? - /// The image ID associated with the failure. + /// The image ID that's associated with the failure. public var imageId: ECRPUBLICClientTypes.ImageIdentifier? public init ( @@ -2711,7 +2735,7 @@ extension ECRPUBLICClientTypes { public struct ImageIdentifier: Swift.Equatable { /// The sha256 digest of the image manifest. public var imageDigest: Swift.String? - /// The tag used for the image. + /// The tag that's used for the image. public var imageTag: Swift.String? public init ( @@ -2743,7 +2767,7 @@ extension ImageNotFoundException { } } -/// The image requested does not exist in the specified repository. +/// The image requested doesn't exist in the specified repository. public struct ImageNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -2862,13 +2886,13 @@ extension ECRPUBLICClientTypes.ImageTagDetail: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing the image tag details for an image. + /// An object that represents the image tag details for an image. public struct ImageTagDetail: Swift.Equatable { - /// The time stamp indicating when the image tag was created. + /// The time stamp that indicates when the image tag was created. public var createdAt: ClientRuntime.Date? /// An object that describes the details of an image. public var imageDetail: ECRPUBLICClientTypes.ReferencedImageDetail? - /// The tag associated with the image. + /// The tag that's associated with the image. public var imageTag: Swift.String? public init ( @@ -2909,9 +2933,9 @@ extension InitiateLayerUploadInput: ClientRuntime.URLPathProvider { } public struct InitiateLayerUploadInput: Swift.Equatable { - /// The AWS account ID associated with the registry to which you intend to upload layers. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID, or registry alias, that's associated with the registry to which you intend to upload layers. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? - /// The name of the repository to which you intend to upload layers. + /// The name of the repository that you want to upload layers to. /// This member is required. public var repositoryName: Swift.String? @@ -3043,7 +3067,7 @@ extension InvalidLayerException { } } -/// The layer digest calculation performed by Amazon ECR upon receipt of the image layer does not match the digest specified. +/// The layer digest calculation performed by Amazon ECR when the image layer doesn't match the digest specified. public struct InvalidLayerException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -3103,7 +3127,7 @@ extension InvalidLayerPartException { } } -/// The layer part size is not valid, or the first byte specified is not consecutive to the last byte of a previous layer part upload. +/// The layer part size isn't valid, or the first byte specified isn't consecutive to the last byte of a previous layer part upload. public struct InvalidLayerPartException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -3115,11 +3139,11 @@ public struct InvalidLayerPartException: AWSClientRuntime.AWSHttpServiceError, S /// The position of the last byte of the layer part. public var lastValidByteReceived: Swift.Int? public var message: Swift.String? - /// The AWS account ID associated with the layer part. + /// The Amazon Web Services account ID that's associated with the layer part. public var registryId: Swift.String? /// The name of the repository. public var repositoryName: Swift.String? - /// The upload ID associated with the layer part. + /// The upload ID that's associated with the layer part. public var uploadId: Swift.String? public init ( @@ -3312,7 +3336,7 @@ extension ECRPUBLICClientTypes.Layer: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing an Amazon ECR image layer. + /// An object that represents an Amazon ECR image layer. public struct Layer: Swift.Equatable { /// The availability status of the image layer. public var layerAvailability: ECRPUBLICClientTypes.LayerAvailability? @@ -3455,13 +3479,13 @@ extension ECRPUBLICClientTypes.LayerFailure: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing an Amazon ECR image layer failure. + /// An object that represents an Amazon ECR image layer failure. public struct LayerFailure: Swift.Equatable { - /// The failure code associated with the failure. + /// The failure code that's associated with the failure. public var failureCode: ECRPUBLICClientTypes.LayerFailureCode? /// The reason for the failure. public var failureReason: Swift.String? - /// The layer digest associated with the failure. + /// The layer digest that's associated with the failure. public var layerDigest: Swift.String? public init ( @@ -3579,7 +3603,7 @@ extension LayersNotFoundException { } } -/// The specified layers could not be found, or the specified layer is not valid for this repository. +/// The specified layers can't be found, or the specified layer isn't valid for this repository. public struct LayersNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -3631,7 +3655,7 @@ extension LimitExceededException { } } -/// The operation did not succeed because it would have exceeded a service limit for your account. For more information, see [Amazon ECR Service Quotas](https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html) in the Amazon Elastic Container Registry User Guide. +/// The operation didn't succeed because it would have exceeded a service limit for your account. For more information, see [Amazon ECR Service Quotas](https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html) in the Amazon Elastic Container Registry User Guide. public struct LimitExceededException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -3686,7 +3710,7 @@ extension ListTagsForResourceInput: ClientRuntime.URLPathProvider { } public struct ListTagsForResourceInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resource is an Amazon ECR Public repository. + /// The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resource is an Amazon ECR Public repository. /// This member is required. public var resourceArn: Swift.String? @@ -3728,6 +3752,7 @@ extension ListTagsForResourceOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -3737,6 +3762,7 @@ public enum ListTagsForResourceOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -3830,18 +3856,18 @@ extension PutImageInput: ClientRuntime.URLPathProvider { } public struct PutImageInput: Swift.Equatable { - /// The image digest of the image manifest corresponding to the image. + /// The image digest of the image manifest that corresponds to the image. public var imageDigest: Swift.String? - /// The image manifest corresponding to the image to be uploaded. + /// The image manifest that corresponds to the image to be uploaded. /// This member is required. public var imageManifest: Swift.String? - /// The media type of the image manifest. If you push an image manifest that does not contain the mediaType field, you must specify the imageManifestMediaType in the request. + /// The media type of the image manifest. If you push an image manifest that doesn't contain the mediaType field, you must specify the imageManifestMediaType in the request. public var imageManifestMediaType: Swift.String? /// The tag to associate with the image. This parameter is required for images that use the Docker Image Manifest V2 Schema 2 or Open Container Initiative (OCI) formats. public var imageTag: Swift.String? - /// The AWS account ID associated with the public registry that contains the repository in which to put the image. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID, or registry alias, that's associated with the public registry that contains the repository where the image is put. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? - /// The name of the repository in which to put the image. + /// The name of the repository where the image is put. /// This member is required. public var repositoryName: Swift.String? @@ -4128,7 +4154,7 @@ public struct PutRepositoryCatalogDataInput: Swift.Equatable { /// An object containing the catalog data for a repository. This data is publicly visible in the Amazon ECR Public Gallery. /// This member is required. public var catalogData: ECRPUBLICClientTypes.RepositoryCatalogDataInput? - /// The AWS account ID associated with the public registry the repository is in. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the public registry the repository is in. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository to create or update the catalog data for. /// This member is required. @@ -4184,6 +4210,7 @@ extension PutRepositoryCatalogDataOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -4193,6 +4220,7 @@ public enum PutRepositoryCatalogDataOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -4281,7 +4309,7 @@ extension ECRPUBLICClientTypes.ReferencedImageDetail: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object that describes the image tag details returned by a [DescribeImageTags] action. + /// An object that describes the image tag details that are returned by a [DescribeImageTags] action. public struct ReferencedImageDetail: Swift.Equatable { /// The artifact media type of the image. public var artifactMediaType: Swift.String? @@ -4289,9 +4317,9 @@ extension ECRPUBLICClientTypes { public var imageDigest: Swift.String? /// The media type of the image manifest. public var imageManifestMediaType: Swift.String? - /// The date and time, expressed in standard JavaScript date format, at which the current image tag was pushed to the repository. + /// The date and time, expressed in standard JavaScript date format, which the current image tag was pushed to the repository at. public var imagePushedAt: ClientRuntime.Date? - /// The size, in bytes, of the image in the repository. If the image is a manifest list, this will be the max size of all manifests in the list. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it may return a larger image size than the image sizes returned by [DescribeImages]. + /// The size, in bytes, of the image in the repository. If the image is a manifest list, this is the max size of all manifests in the list. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed image size, so it might return a larger image size than the image sizes that are returned by [DescribeImages]. public var imageSizeInBytes: Swift.Int? public init ( @@ -4329,7 +4357,7 @@ extension ReferencedImagesNotFoundException { } } -/// The manifest list is referencing an image that does not exist. +/// The manifest list is referencing an image that doesn't exist. public struct ReferencedImagesNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -4422,19 +4450,19 @@ extension ECRPUBLICClientTypes.Registry: Swift.Codable { extension ECRPUBLICClientTypes { /// The details of a public registry. public struct Registry: Swift.Equatable { - /// An array of objects representing the aliases for a public registry. + /// An array of objects that represents the aliases for a public registry. /// This member is required. public var aliases: [ECRPUBLICClientTypes.RegistryAlias]? /// The Amazon Resource Name (ARN) of the public registry. /// This member is required. public var registryArn: Swift.String? - /// The AWS account ID associated with the registry. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the registry. If you do not specify a registry, the default public registry is assumed. /// This member is required. public var registryId: Swift.String? /// The URI of a public registry. The URI contains a universal prefix and the registry alias. /// This member is required. public var registryUri: Swift.String? - /// Whether the account is verified. This indicates whether the account is an AWS Marketplace vendor. If an account is verified, each public repository will received a verified account badge on the Amazon ECR Public Gallery. + /// Indicates whether the account is a verified Amazon Web Services Marketplace vendor. If an account is verified, each public repository receives a verified account badge on the Amazon ECR Public Gallery. /// This member is required. public var verified: Swift.Bool? @@ -4494,15 +4522,15 @@ extension ECRPUBLICClientTypes.RegistryAlias: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object representing the aliases for a public registry. A public registry is given an alias upon creation but a custom alias can be set using the Amazon ECR console. For more information, see [Registries](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html) in the Amazon Elastic Container Registry User Guide. + /// An object representing the aliases for a public registry. A public registry is given an alias when it's created. However, a custom alias can be set using the Amazon ECR console. For more information, see [Registries](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html) in the Amazon Elastic Container Registry User Guide. public struct RegistryAlias: Swift.Equatable { - /// Whether or not the registry alias is the default alias for the registry. When the first public repository is created, your public registry is assigned a default registry alias. + /// Indicates whether the registry alias is the default alias for the registry. When the first public repository is created, your public registry is assigned a default registry alias. /// This member is required. public var defaultRegistryAlias: Swift.Bool /// The name of the registry alias. /// This member is required. public var name: Swift.String? - /// Whether or not the registry alias is the primary alias for the registry. If true, the alias is the primary registry alias and is displayed in both the repository URL and the image URI used in the docker pull commands on the Amazon ECR Public Gallery. A registry alias that is not the primary registry alias can be used in the repository URI in a docker pull command. + /// Indicates whether the registry alias is the primary alias for the registry. If true, the alias is the primary registry alias and is displayed in both the repository URL and the image URI used in the docker pull commands on the Amazon ECR Public Gallery. A registry alias that isn't the primary registry alias can be used in the repository URI in a docker pull command. /// This member is required. public var primaryRegistryAlias: Swift.Bool /// The status of the registry alias. @@ -4612,7 +4640,7 @@ extension RegistryNotFoundException { } } -/// The registry does not exist. +/// The registry doesn't exist. public struct RegistryNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -4695,9 +4723,9 @@ extension ECRPUBLICClientTypes { public struct Repository: Swift.Equatable { /// The date and time, in JavaScript date format, when the repository was created. public var createdAt: ClientRuntime.Date? - /// The AWS account ID associated with the public registry that contains the repository. + /// The Amazon Web Services account ID that's associated with the public registry that contains the repository. public var registryId: Swift.String? - /// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, AWS account ID of the repository owner, repository namespace, and repository name. For example, arn:aws:ecr:region:012345678910:repository/test. + /// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr namespace, followed by the region of the repository, Amazon Web Services account ID of the repository owner, repository namespace, and repository name. For example, arn:aws:ecr:region:012345678910:repository/test. public var repositoryArn: Swift.String? /// The name of the repository. public var repositoryName: Swift.String? @@ -4862,9 +4890,9 @@ extension ECRPUBLICClientTypes { public var architectures: [Swift.String]? /// The short description of the repository. public var description: Swift.String? - /// The URL containing the logo associated with the repository. + /// The URL that contains the logo that's associated with the repository. public var logoUrl: Swift.String? - /// Whether or not the repository is certified by AWS Marketplace. + /// Indicates whether the repository is certified by Amazon Web Services Marketplace. public var marketplaceCertified: Swift.Bool? /// The operating system tags that are associated with the repository. Only supported operating system tags appear publicly in the Amazon ECR Public Gallery. For more information, see [RepositoryCatalogDataInput]. public var operatingSystems: [Swift.String]? @@ -4967,37 +4995,31 @@ extension ECRPUBLICClientTypes.RepositoryCatalogDataInput: Swift.Codable { } extension ECRPUBLICClientTypes { - /// An object containing the catalog data for a repository. This data is publicly visible in the Amazon ECR Public Gallery. + /// An object that contains the catalog data for a repository. This data is publicly visible in the Amazon ECR Public Gallery. public struct RepositoryCatalogDataInput: Swift.Equatable { - /// A detailed description of the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The text must be in markdown format. + /// A detailed description of the contents of the repository. It's publicly visible in the Amazon ECR Public Gallery. The text must be in markdown format. public var aboutText: Swift.String? - /// The system architecture that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported architectures will appear as badges on the repository and are used as search filters. + /// The system architecture that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported architectures appear as badges on the repository and are used as search filters. If an unsupported tag is added to your repository catalog data, it's associated with the repository and can be retrieved using the API but isn't discoverable in the Amazon ECR Public Gallery. /// - /// * Linux + /// * ARM /// - /// * Windows + /// * ARM 64 /// + /// * x86 /// - /// If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. + /// * x86-64 public var architectures: [Swift.String]? /// A short description of the contents of the repository. This text appears in both the image details and also when searching for repositories on the Amazon ECR Public Gallery. public var description: Swift.String? /// The base64-encoded repository logo payload. The repository logo is only publicly visible in the Amazon ECR Public Gallery for verified accounts. public var logoImageBlob: ClientRuntime.Data? - /// The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems will appear as badges on the repository and are used as search filters. - /// - /// * ARM - /// - /// * ARM 64 - /// - /// * x86 - /// - /// * x86-64 + /// The operating systems that the images in the repository are compatible with. On the Amazon ECR Public Gallery, the following supported operating systems appear as badges on the repository and are used as search filters. If an unsupported tag is added to your repository catalog data, it's associated with the repository and can be retrieved using the API but isn't discoverable in the Amazon ECR Public Gallery. /// + /// * Linux /// - /// If an unsupported tag is added to your repository catalog data, it will be associated with the repository and can be retrieved using the API but will not be discoverable in the Amazon ECR Public Gallery. + /// * Windows public var operatingSystems: [Swift.String]? - /// Detailed information on how to use the contents of the repository. It is publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format. + /// Detailed information about how to use the contents of the repository. It's publicly visible in the Amazon ECR Public Gallery. The usage text provides context, support information, and additional usage details for users of the repository. The text must be in markdown format. public var usageText: Swift.String? public init ( @@ -5020,6 +5042,58 @@ extension ECRPUBLICClientTypes { } +extension RepositoryCatalogDataNotFoundException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: RepositoryCatalogDataNotFoundExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The repository catalog data doesn't exist. +public struct RepositoryCatalogDataNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct RepositoryCatalogDataNotFoundExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension RepositoryCatalogDataNotFoundExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + extension RepositoryNotEmptyException { public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { if case .stream(let reader) = httpResponse.body, @@ -5089,7 +5163,7 @@ extension RepositoryNotFoundException { } } -/// The specified repository could not be found. Check the spelling of the specified repository and ensure that you are performing operations on the correct registry. +/// The specified repository can't be found. Check the spelling of the specified repository and ensure that you're performing operations on the correct registry. public struct RepositoryNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -5141,7 +5215,7 @@ extension RepositoryPolicyNotFoundException { } } -/// The specified repository and registry combination does not have an associated repository policy. +/// The specified repository and registry combination doesn't have an associated repository policy. public struct RepositoryPolicyNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -5260,12 +5334,12 @@ extension SetRepositoryPolicyInput: ClientRuntime.URLPathProvider { } public struct SetRepositoryPolicyInput: Swift.Equatable { - /// If the policy you are attempting to set on a repository policy would prevent you from setting another policy in the future, you must force the [SetRepositoryPolicy] operation. This is intended to prevent accidental repository lock outs. + /// If the policy that you want to set on a repository policy would prevent you from setting another policy in the future, you must force the [SetRepositoryPolicy] operation. This prevents accidental repository lockouts. public var force: Swift.Bool /// The JSON repository policy text to apply to the repository. For more information, see [Amazon ECR Repository Policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) in the Amazon Elastic Container Registry User Guide. /// This member is required. public var policyText: Swift.String? - /// The AWS account ID associated with the registry that contains the repository. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID that's associated with the registry that contains the repository. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? /// The name of the repository to receive the policy. /// This member is required. @@ -5327,6 +5401,7 @@ extension SetRepositoryPolicyOutputError { case "InvalidParameterException" : self = .invalidParameterException(try InvalidParameterException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -5336,6 +5411,7 @@ public enum SetRepositoryPolicyOutputError: Swift.Error, Swift.Equatable { case invalidParameterException(InvalidParameterException) case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -5357,11 +5433,11 @@ extension SetRepositoryPolicyOutputResponse: ClientRuntime.HttpResponseBinding { } public struct SetRepositoryPolicyOutputResponse: Swift.Equatable { - /// The JSON repository policy text applied to the repository. + /// The JSON repository policy text that's applied to the repository. public var policyText: Swift.String? - /// The registry ID associated with the request. + /// The registry ID that's associated with the request. public var registryId: Swift.String? - /// The repository name associated with the request. + /// The repository name that's associated with the request. public var repositoryName: Swift.String? public init ( @@ -5426,7 +5502,7 @@ extension ECRPUBLICClientTypes.Tag: Swift.Codable { } extension ECRPUBLICClientTypes { - /// The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + /// The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define both. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. public struct Tag: Swift.Equatable { /// One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values. public var key: Swift.String? @@ -5472,7 +5548,7 @@ extension TagResourceInput: ClientRuntime.URLPathProvider { } public struct TagResourceInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently, the supported resource is an Amazon ECR Public repository. + /// The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resource is an Amazon ECR Public repository. /// This member is required. public var resourceArn: Swift.String? /// The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. @@ -5534,6 +5610,7 @@ extension TagResourceOutputError { case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "TooManyTagsException" : self = .tooManyTagsException(try TooManyTagsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -5545,6 +5622,7 @@ public enum TagResourceOutputError: Swift.Error, Swift.Equatable { case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) case tooManyTagsException(TooManyTagsException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -5627,7 +5705,7 @@ extension UnsupportedCommandException { } } -/// The action is not supported in this Region. +/// The action isn't supported in this Region. public struct UnsupportedCommandException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? @@ -5689,7 +5767,7 @@ extension UntagResourceInput: ClientRuntime.URLPathProvider { } public struct UntagResourceInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resource is an Amazon ECR Public repository. + /// The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resource is an Amazon ECR Public repository. /// This member is required. public var resourceArn: Swift.String? /// The keys of the tags to be removed. @@ -5751,6 +5829,7 @@ extension UntagResourceOutputError { case "RepositoryNotFoundException" : self = .repositoryNotFoundException(try RepositoryNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ServerException" : self = .serverException(try ServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "TooManyTagsException" : self = .tooManyTagsException(try TooManyTagsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "UnsupportedCommandException" : self = .unsupportedCommandException(try UnsupportedCommandException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } } @@ -5762,6 +5841,7 @@ public enum UntagResourceOutputError: Swift.Error, Swift.Equatable { case repositoryNotFoundException(RepositoryNotFoundException) case serverException(ServerException) case tooManyTagsException(TooManyTagsException) + case unsupportedCommandException(UnsupportedCommandException) case unknown(UnknownAWSHttpServiceError) } @@ -5824,9 +5904,9 @@ public struct UploadLayerPartInput: Swift.Equatable { /// The position of the last byte of the layer part within the overall image layer. /// This member is required. public var partLastByte: Swift.Int? - /// The AWS account ID associated with the registry to which you are uploading layer parts. If you do not specify a registry, the default public registry is assumed. + /// The Amazon Web Services account ID, or registry alias, that's associated with the registry that you're uploading layer parts to. If you do not specify a registry, the default public registry is assumed. public var registryId: Swift.String? - /// The name of the repository to which you are uploading layer parts. + /// The name of the repository that you're uploading layer parts to. /// This member is required. public var repositoryName: Swift.String? /// The upload ID from a previous [InitiateLayerUpload] operation to associate with the layer part upload. @@ -5943,13 +6023,13 @@ extension UploadLayerPartOutputResponse: ClientRuntime.HttpResponseBinding { } public struct UploadLayerPartOutputResponse: Swift.Equatable { - /// The integer value of the last byte received in the request. + /// The integer value of the last byte that's received in the request. public var lastByteReceived: Swift.Int? - /// The registry ID associated with the request. + /// The registry ID that's associated with the request. public var registryId: Swift.String? - /// The repository name associated with the request. + /// The repository name that's associated with the request. public var repositoryName: Swift.String? - /// The upload ID associated with the request. + /// The upload ID that's associated with the request. public var uploadId: Swift.String? public init ( @@ -6011,7 +6091,7 @@ extension UploadNotFoundException { } } -/// The upload could not be found, or the specified upload ID is not valid for this repository. +/// The upload can't be found, or the specified upload ID isn't valid for this repository. public struct UploadNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { public var _headers: ClientRuntime.Headers? public var _statusCode: ClientRuntime.HttpStatusCode? diff --git a/Sources/Services/AWSECS/Paginators.swift b/Sources/Services/AWSECS/Paginators.swift index 375c520dbc4..dae23c0004d 100644 --- a/Sources/Services/AWSECS/Paginators.swift +++ b/Sources/Services/AWSECS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountSettingsOutputResponse` extension ECSClient { + /// Paginate over `[ListAccountSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountSettingsOutputResponse` public func listAccountSettingsPaginated(input: ListAccountSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountSettingsInput.nextToken, outputKey: \ListAccountSettingsOutputResponse.nextToken, paginationFunction: self.listAccountSettings(input:)) } @@ -29,24 +28,23 @@ extension ListAccountSettingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountSettingsPaginated` -/// to access the nested member `[ECSClientTypes.Setting]` -/// - Returns: `[ECSClientTypes.Setting]` extension PaginatorSequence where Input == ListAccountSettingsInput, Output == ListAccountSettingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountSettingsPaginated` + /// to access the nested member `[ECSClientTypes.Setting]` + /// - Returns: `[ECSClientTypes.Setting]` public func settings() async throws -> [ECSClientTypes.Setting] { return try await self.asyncCompactMap { item in item.settings } } } - -/// Paginate over `[ListAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttributesOutputResponse` extension ECSClient { + /// Paginate over `[ListAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttributesOutputResponse` public func listAttributesPaginated(input: ListAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttributesInput.nextToken, outputKey: \ListAttributesOutputResponse.nextToken, paginationFunction: self.listAttributes(input:)) } @@ -64,24 +62,23 @@ extension ListAttributesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttributesPaginated` -/// to access the nested member `[ECSClientTypes.Attribute]` -/// - Returns: `[ECSClientTypes.Attribute]` extension PaginatorSequence where Input == ListAttributesInput, Output == ListAttributesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttributesPaginated` + /// to access the nested member `[ECSClientTypes.Attribute]` + /// - Returns: `[ECSClientTypes.Attribute]` public func attributes() async throws -> [ECSClientTypes.Attribute] { return try await self.asyncCompactMap { item in item.attributes } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension ECSClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -95,24 +92,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func clusterArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.clusterArns } } } - -/// Paginate over `[ListContainerInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContainerInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContainerInstancesOutputResponse` extension ECSClient { + /// Paginate over `[ListContainerInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContainerInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContainerInstancesOutputResponse` public func listContainerInstancesPaginated(input: ListContainerInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContainerInstancesInput.nextToken, outputKey: \ListContainerInstancesOutputResponse.nextToken, paginationFunction: self.listContainerInstances(input:)) } @@ -129,24 +125,23 @@ extension ListContainerInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContainerInstancesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListContainerInstancesInput, Output == ListContainerInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContainerInstancesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func containerInstanceArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.containerInstanceArns } } } - -/// Paginate over `[ListServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` extension ECSClient { + /// Paginate over `[ListServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` public func listServicesPaginated(input: ListServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesInput.nextToken, outputKey: \ListServicesOutputResponse.nextToken, paginationFunction: self.listServices(input:)) } @@ -163,24 +158,23 @@ extension ListServicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListServicesInput, Output == ListServicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func serviceArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.serviceArns } } } - -/// Paginate over `[ListServicesByNamespaceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesByNamespaceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesByNamespaceOutputResponse` extension ECSClient { + /// Paginate over `[ListServicesByNamespaceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesByNamespaceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesByNamespaceOutputResponse` public func listServicesByNamespacePaginated(input: ListServicesByNamespaceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesByNamespaceInput.nextToken, outputKey: \ListServicesByNamespaceOutputResponse.nextToken, paginationFunction: self.listServicesByNamespace(input:)) } @@ -195,24 +189,23 @@ extension ListServicesByNamespaceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServicesByNamespacePaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListServicesByNamespaceInput, Output == ListServicesByNamespaceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServicesByNamespacePaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func serviceArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.serviceArns } } } - -/// Paginate over `[ListTaskDefinitionFamiliesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTaskDefinitionFamiliesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTaskDefinitionFamiliesOutputResponse` extension ECSClient { + /// Paginate over `[ListTaskDefinitionFamiliesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTaskDefinitionFamiliesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTaskDefinitionFamiliesOutputResponse` public func listTaskDefinitionFamiliesPaginated(input: ListTaskDefinitionFamiliesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTaskDefinitionFamiliesInput.nextToken, outputKey: \ListTaskDefinitionFamiliesOutputResponse.nextToken, paginationFunction: self.listTaskDefinitionFamilies(input:)) } @@ -228,24 +221,23 @@ extension ListTaskDefinitionFamiliesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTaskDefinitionFamiliesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListTaskDefinitionFamiliesInput, Output == ListTaskDefinitionFamiliesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTaskDefinitionFamiliesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func families() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.families } } } - -/// Paginate over `[ListTaskDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTaskDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTaskDefinitionsOutputResponse` extension ECSClient { + /// Paginate over `[ListTaskDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTaskDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTaskDefinitionsOutputResponse` public func listTaskDefinitionsPaginated(input: ListTaskDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTaskDefinitionsInput.nextToken, outputKey: \ListTaskDefinitionsOutputResponse.nextToken, paginationFunction: self.listTaskDefinitions(input:)) } @@ -262,24 +254,23 @@ extension ListTaskDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTaskDefinitionsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListTaskDefinitionsInput, Output == ListTaskDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTaskDefinitionsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func taskDefinitionArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.taskDefinitionArns } } } - -/// Paginate over `[ListTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTasksOutputResponse` extension ECSClient { + /// Paginate over `[ListTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTasksOutputResponse` public func listTasksPaginated(input: ListTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTasksInput.nextToken, outputKey: \ListTasksOutputResponse.nextToken, paginationFunction: self.listTasks(input:)) } @@ -300,10 +291,10 @@ extension ListTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTasksPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListTasksInput, Output == ListTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTasksPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func taskArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.taskArns } } diff --git a/Sources/Services/AWSEFS/Paginators.swift b/Sources/Services/AWSEFS/Paginators.swift index faaf2f5f6a7..cee67f0d85e 100644 --- a/Sources/Services/AWSEFS/Paginators.swift +++ b/Sources/Services/AWSEFS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAccessPointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAccessPointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAccessPointsOutputResponse` extension EFSClient { + /// Paginate over `[DescribeAccessPointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAccessPointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAccessPointsOutputResponse` public func describeAccessPointsPaginated(input: DescribeAccessPointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAccessPointsInput.nextToken, outputKey: \DescribeAccessPointsOutputResponse.nextToken, paginationFunction: self.describeAccessPoints(input:)) } @@ -26,16 +25,15 @@ extension DescribeAccessPointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFileSystemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFileSystemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemsOutputResponse` extension EFSClient { + /// Paginate over `[DescribeFileSystemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFileSystemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemsOutputResponse` public func describeFileSystemsPaginated(input: DescribeFileSystemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFileSystemsInput.marker, outputKey: \DescribeFileSystemsOutputResponse.nextMarker, paginationFunction: self.describeFileSystems(input:)) } @@ -50,16 +48,15 @@ extension DescribeFileSystemsInput: ClientRuntime.PaginateToken { maxItems: self.maxItems )} } - -/// Paginate over `[DescribeTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` extension EFSClient { + /// Paginate over `[DescribeTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` public func describeTagsPaginated(input: DescribeTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTagsInput.marker, outputKey: \DescribeTagsOutputResponse.nextMarker, paginationFunction: self.describeTags(input:)) } @@ -73,16 +70,15 @@ extension DescribeTagsInput: ClientRuntime.PaginateToken { maxItems: self.maxItems )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension EFSClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } diff --git a/Sources/Services/AWSEKS/Paginators.swift b/Sources/Services/AWSEKS/Paginators.swift index d71e67ad253..94837c157ae 100644 --- a/Sources/Services/AWSEKS/Paginators.swift +++ b/Sources/Services/AWSEKS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAddonVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAddonVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAddonVersionsOutputResponse` extension EKSClient { + /// Paginate over `[DescribeAddonVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAddonVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAddonVersionsOutputResponse` public func describeAddonVersionsPaginated(input: DescribeAddonVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAddonVersionsInput.nextToken, outputKey: \DescribeAddonVersionsOutputResponse.nextToken, paginationFunction: self.describeAddonVersions(input:)) } @@ -30,24 +29,23 @@ extension DescribeAddonVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAddonVersionsPaginated` -/// to access the nested member `[EKSClientTypes.AddonInfo]` -/// - Returns: `[EKSClientTypes.AddonInfo]` extension PaginatorSequence where Input == DescribeAddonVersionsInput, Output == DescribeAddonVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAddonVersionsPaginated` + /// to access the nested member `[EKSClientTypes.AddonInfo]` + /// - Returns: `[EKSClientTypes.AddonInfo]` public func addons() async throws -> [EKSClientTypes.AddonInfo] { return try await self.asyncCompactMap { item in item.addons } } } - -/// Paginate over `[ListAddonsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAddonsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAddonsOutputResponse` extension EKSClient { + /// Paginate over `[ListAddonsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAddonsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAddonsOutputResponse` public func listAddonsPaginated(input: ListAddonsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAddonsInput.nextToken, outputKey: \ListAddonsOutputResponse.nextToken, paginationFunction: self.listAddons(input:)) } @@ -62,24 +60,23 @@ extension ListAddonsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAddonsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAddonsInput, Output == ListAddonsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAddonsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func addons() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.addons } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension EKSClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -94,24 +91,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func clusters() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[ListFargateProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFargateProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFargateProfilesOutputResponse` extension EKSClient { + /// Paginate over `[ListFargateProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFargateProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFargateProfilesOutputResponse` public func listFargateProfilesPaginated(input: ListFargateProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFargateProfilesInput.nextToken, outputKey: \ListFargateProfilesOutputResponse.nextToken, paginationFunction: self.listFargateProfiles(input:)) } @@ -126,24 +122,23 @@ extension ListFargateProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFargateProfilesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFargateProfilesInput, Output == ListFargateProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFargateProfilesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func fargateProfileNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.fargateProfileNames } } } - -/// Paginate over `[ListIdentityProviderConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentityProviderConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProviderConfigsOutputResponse` extension EKSClient { + /// Paginate over `[ListIdentityProviderConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentityProviderConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProviderConfigsOutputResponse` public func listIdentityProviderConfigsPaginated(input: ListIdentityProviderConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentityProviderConfigsInput.nextToken, outputKey: \ListIdentityProviderConfigsOutputResponse.nextToken, paginationFunction: self.listIdentityProviderConfigs(input:)) } @@ -158,24 +153,23 @@ extension ListIdentityProviderConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIdentityProviderConfigsPaginated` -/// to access the nested member `[EKSClientTypes.IdentityProviderConfig]` -/// - Returns: `[EKSClientTypes.IdentityProviderConfig]` extension PaginatorSequence where Input == ListIdentityProviderConfigsInput, Output == ListIdentityProviderConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIdentityProviderConfigsPaginated` + /// to access the nested member `[EKSClientTypes.IdentityProviderConfig]` + /// - Returns: `[EKSClientTypes.IdentityProviderConfig]` public func identityProviderConfigs() async throws -> [EKSClientTypes.IdentityProviderConfig] { return try await self.asyncCompactMap { item in item.identityProviderConfigs } } } - -/// Paginate over `[ListNodegroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNodegroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNodegroupsOutputResponse` extension EKSClient { + /// Paginate over `[ListNodegroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodegroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodegroupsOutputResponse` public func listNodegroupsPaginated(input: ListNodegroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNodegroupsInput.nextToken, outputKey: \ListNodegroupsOutputResponse.nextToken, paginationFunction: self.listNodegroups(input:)) } @@ -190,24 +184,23 @@ extension ListNodegroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNodegroupsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListNodegroupsInput, Output == ListNodegroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNodegroupsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func nodegroups() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.nodegroups } } } - -/// Paginate over `[ListUpdatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUpdatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUpdatesOutputResponse` extension EKSClient { + /// Paginate over `[ListUpdatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUpdatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUpdatesOutputResponse` public func listUpdatesPaginated(input: ListUpdatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUpdatesInput.nextToken, outputKey: \ListUpdatesOutputResponse.nextToken, paginationFunction: self.listUpdates(input:)) } @@ -224,10 +217,10 @@ extension ListUpdatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUpdatesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListUpdatesInput, Output == ListUpdatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUpdatesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func updateIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.updateIds } } diff --git a/Sources/Services/AWSEMR/Paginators.swift b/Sources/Services/AWSEMR/Paginators.swift index 2d517f09d58..9f3dcda6f16 100644 --- a/Sources/Services/AWSEMR/Paginators.swift +++ b/Sources/Services/AWSEMR/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBootstrapActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBootstrapActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBootstrapActionsOutputResponse` extension EMRClient { + /// Paginate over `[ListBootstrapActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBootstrapActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBootstrapActionsOutputResponse` public func listBootstrapActionsPaginated(input: ListBootstrapActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBootstrapActionsInput.marker, outputKey: \ListBootstrapActionsOutputResponse.marker, paginationFunction: self.listBootstrapActions(input:)) } @@ -25,24 +24,23 @@ extension ListBootstrapActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBootstrapActionsPaginated` -/// to access the nested member `[EMRClientTypes.Command]` -/// - Returns: `[EMRClientTypes.Command]` extension PaginatorSequence where Input == ListBootstrapActionsInput, Output == ListBootstrapActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBootstrapActionsPaginated` + /// to access the nested member `[EMRClientTypes.Command]` + /// - Returns: `[EMRClientTypes.Command]` public func bootstrapActions() async throws -> [EMRClientTypes.Command] { return try await self.asyncCompactMap { item in item.bootstrapActions } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension EMRClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.marker, outputKey: \ListClustersOutputResponse.marker, paginationFunction: self.listClusters(input:)) } @@ -58,24 +56,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[EMRClientTypes.ClusterSummary]` -/// - Returns: `[EMRClientTypes.ClusterSummary]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[EMRClientTypes.ClusterSummary]` + /// - Returns: `[EMRClientTypes.ClusterSummary]` public func clusters() async throws -> [EMRClientTypes.ClusterSummary] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[ListInstanceFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceFleetsOutputResponse` extension EMRClient { + /// Paginate over `[ListInstanceFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceFleetsOutputResponse` public func listInstanceFleetsPaginated(input: ListInstanceFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceFleetsInput.marker, outputKey: \ListInstanceFleetsOutputResponse.marker, paginationFunction: self.listInstanceFleets(input:)) } @@ -89,24 +86,23 @@ extension ListInstanceFleetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceFleetsPaginated` -/// to access the nested member `[EMRClientTypes.InstanceFleet]` -/// - Returns: `[EMRClientTypes.InstanceFleet]` extension PaginatorSequence where Input == ListInstanceFleetsInput, Output == ListInstanceFleetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceFleetsPaginated` + /// to access the nested member `[EMRClientTypes.InstanceFleet]` + /// - Returns: `[EMRClientTypes.InstanceFleet]` public func instanceFleets() async throws -> [EMRClientTypes.InstanceFleet] { return try await self.asyncCompactMap { item in item.instanceFleets } } } - -/// Paginate over `[ListInstanceGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceGroupsOutputResponse` extension EMRClient { + /// Paginate over `[ListInstanceGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceGroupsOutputResponse` public func listInstanceGroupsPaginated(input: ListInstanceGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceGroupsInput.marker, outputKey: \ListInstanceGroupsOutputResponse.marker, paginationFunction: self.listInstanceGroups(input:)) } @@ -120,24 +116,23 @@ extension ListInstanceGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceGroupsPaginated` -/// to access the nested member `[EMRClientTypes.InstanceGroup]` -/// - Returns: `[EMRClientTypes.InstanceGroup]` extension PaginatorSequence where Input == ListInstanceGroupsInput, Output == ListInstanceGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceGroupsPaginated` + /// to access the nested member `[EMRClientTypes.InstanceGroup]` + /// - Returns: `[EMRClientTypes.InstanceGroup]` public func instanceGroups() async throws -> [EMRClientTypes.InstanceGroup] { return try await self.asyncCompactMap { item in item.instanceGroups } } } - -/// Paginate over `[ListInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` extension EMRClient { + /// Paginate over `[ListInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` public func listInstancesPaginated(input: ListInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstancesInput.marker, outputKey: \ListInstancesOutputResponse.marker, paginationFunction: self.listInstances(input:)) } @@ -156,24 +151,23 @@ extension ListInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` -/// to access the nested member `[EMRClientTypes.Instance]` -/// - Returns: `[EMRClientTypes.Instance]` extension PaginatorSequence where Input == ListInstancesInput, Output == ListInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` + /// to access the nested member `[EMRClientTypes.Instance]` + /// - Returns: `[EMRClientTypes.Instance]` public func instances() async throws -> [EMRClientTypes.Instance] { return try await self.asyncCompactMap { item in item.instances } } } - -/// Paginate over `[ListNotebookExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotebookExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotebookExecutionsOutputResponse` extension EMRClient { + /// Paginate over `[ListNotebookExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotebookExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotebookExecutionsOutputResponse` public func listNotebookExecutionsPaginated(input: ListNotebookExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotebookExecutionsInput.marker, outputKey: \ListNotebookExecutionsOutputResponse.marker, paginationFunction: self.listNotebookExecutions(input:)) } @@ -190,24 +184,23 @@ extension ListNotebookExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNotebookExecutionsPaginated` -/// to access the nested member `[EMRClientTypes.NotebookExecutionSummary]` -/// - Returns: `[EMRClientTypes.NotebookExecutionSummary]` extension PaginatorSequence where Input == ListNotebookExecutionsInput, Output == ListNotebookExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNotebookExecutionsPaginated` + /// to access the nested member `[EMRClientTypes.NotebookExecutionSummary]` + /// - Returns: `[EMRClientTypes.NotebookExecutionSummary]` public func notebookExecutions() async throws -> [EMRClientTypes.NotebookExecutionSummary] { return try await self.asyncCompactMap { item in item.notebookExecutions } } } - -/// Paginate over `[ListReleaseLabelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReleaseLabelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReleaseLabelsOutputResponse` extension EMRClient { + /// Paginate over `[ListReleaseLabelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReleaseLabelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReleaseLabelsOutputResponse` public func listReleaseLabelsPaginated(input: ListReleaseLabelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReleaseLabelsInput.nextToken, outputKey: \ListReleaseLabelsOutputResponse.nextToken, paginationFunction: self.listReleaseLabels(input:)) } @@ -221,16 +214,15 @@ extension ListReleaseLabelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSecurityConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityConfigurationsOutputResponse` extension EMRClient { + /// Paginate over `[ListSecurityConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityConfigurationsOutputResponse` public func listSecurityConfigurationsPaginated(input: ListSecurityConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityConfigurationsInput.marker, outputKey: \ListSecurityConfigurationsOutputResponse.marker, paginationFunction: self.listSecurityConfigurations(input:)) } @@ -243,24 +235,23 @@ extension ListSecurityConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityConfigurationsPaginated` -/// to access the nested member `[EMRClientTypes.SecurityConfigurationSummary]` -/// - Returns: `[EMRClientTypes.SecurityConfigurationSummary]` extension PaginatorSequence where Input == ListSecurityConfigurationsInput, Output == ListSecurityConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityConfigurationsPaginated` + /// to access the nested member `[EMRClientTypes.SecurityConfigurationSummary]` + /// - Returns: `[EMRClientTypes.SecurityConfigurationSummary]` public func securityConfigurations() async throws -> [EMRClientTypes.SecurityConfigurationSummary] { return try await self.asyncCompactMap { item in item.securityConfigurations } } } - -/// Paginate over `[ListStepsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStepsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStepsOutputResponse` extension EMRClient { + /// Paginate over `[ListStepsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStepsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStepsOutputResponse` public func listStepsPaginated(input: ListStepsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStepsInput.marker, outputKey: \ListStepsOutputResponse.marker, paginationFunction: self.listSteps(input:)) } @@ -276,24 +267,23 @@ extension ListStepsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStepsPaginated` -/// to access the nested member `[EMRClientTypes.StepSummary]` -/// - Returns: `[EMRClientTypes.StepSummary]` extension PaginatorSequence where Input == ListStepsInput, Output == ListStepsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStepsPaginated` + /// to access the nested member `[EMRClientTypes.StepSummary]` + /// - Returns: `[EMRClientTypes.StepSummary]` public func steps() async throws -> [EMRClientTypes.StepSummary] { return try await self.asyncCompactMap { item in item.steps } } } - -/// Paginate over `[ListStudiosOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStudiosInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStudiosOutputResponse` extension EMRClient { + /// Paginate over `[ListStudiosOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStudiosInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStudiosOutputResponse` public func listStudiosPaginated(input: ListStudiosInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStudiosInput.marker, outputKey: \ListStudiosOutputResponse.marker, paginationFunction: self.listStudios(input:)) } @@ -306,24 +296,23 @@ extension ListStudiosInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStudiosPaginated` -/// to access the nested member `[EMRClientTypes.StudioSummary]` -/// - Returns: `[EMRClientTypes.StudioSummary]` extension PaginatorSequence where Input == ListStudiosInput, Output == ListStudiosOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStudiosPaginated` + /// to access the nested member `[EMRClientTypes.StudioSummary]` + /// - Returns: `[EMRClientTypes.StudioSummary]` public func studios() async throws -> [EMRClientTypes.StudioSummary] { return try await self.asyncCompactMap { item in item.studios } } } - -/// Paginate over `[ListStudioSessionMappingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStudioSessionMappingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStudioSessionMappingsOutputResponse` extension EMRClient { + /// Paginate over `[ListStudioSessionMappingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStudioSessionMappingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStudioSessionMappingsOutputResponse` public func listStudioSessionMappingsPaginated(input: ListStudioSessionMappingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStudioSessionMappingsInput.marker, outputKey: \ListStudioSessionMappingsOutputResponse.marker, paginationFunction: self.listStudioSessionMappings(input:)) } @@ -338,10 +327,10 @@ extension ListStudioSessionMappingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStudioSessionMappingsPaginated` -/// to access the nested member `[EMRClientTypes.SessionMappingSummary]` -/// - Returns: `[EMRClientTypes.SessionMappingSummary]` extension PaginatorSequence where Input == ListStudioSessionMappingsInput, Output == ListStudioSessionMappingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStudioSessionMappingsPaginated` + /// to access the nested member `[EMRClientTypes.SessionMappingSummary]` + /// - Returns: `[EMRClientTypes.SessionMappingSummary]` public func sessionMappings() async throws -> [EMRClientTypes.SessionMappingSummary] { return try await self.asyncCompactMap { item in item.sessionMappings } } diff --git a/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift b/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift index 58641acb377..45a862b0c47 100644 --- a/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift +++ b/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift @@ -224,7 +224,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "cancelJobRun") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -264,7 +267,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -299,7 +305,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteApplication") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -331,7 +340,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "getApplication") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -363,7 +375,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDashboardForJobRun") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -395,7 +410,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "getJobRun") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -427,7 +445,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "listApplications") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -460,7 +481,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "listJobRuns") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -493,7 +517,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -525,7 +552,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "startApplication") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -565,7 +595,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -600,7 +633,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "stopApplication") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -632,7 +668,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -667,7 +706,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -708,7 +750,10 @@ extension EMRServerlessClient: EMRServerlessClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSEMRServerless/EndpointResolver.swift b/Sources/Services/AWSEMRServerless/EndpointResolver.swift index f31c7c1da8e..aff6b2ed636 100644 --- a/Sources/Services/AWSEMRServerless/EndpointResolver.swift +++ b/Sources/Services/AWSEMRServerless/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://emr-serverless.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSEMRServerless/models/Models.swift b/Sources/Services/AWSEMRServerless/models/Models.swift index 20f97a45352..114e0480097 100644 --- a/Sources/Services/AWSEMRServerless/models/Models.swift +++ b/Sources/Services/AWSEMRServerless/models/Models.swift @@ -10,6 +10,7 @@ extension EMRServerlessClientTypes.Application: Swift.Codable { case autoStartConfiguration case autoStopConfiguration case createdAt + case imageConfiguration case initialCapacity case maximumCapacity case name @@ -20,6 +21,7 @@ extension EMRServerlessClientTypes.Application: Swift.Codable { case tags case type case updatedAt + case workerTypeSpecifications } public func encode(to encoder: Swift.Encoder) throws { @@ -42,6 +44,9 @@ extension EMRServerlessClientTypes.Application: Swift.Codable { if let createdAt = self.createdAt { try encodeContainer.encodeTimestamp(createdAt, format: .epochSeconds, forKey: .createdAt) } + if let imageConfiguration = self.imageConfiguration { + try encodeContainer.encode(imageConfiguration, forKey: .imageConfiguration) + } if let initialCapacity = initialCapacity { var initialCapacityContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .initialCapacity) for (dictKey0, initialCapacityConfigMap0) in initialCapacity { @@ -78,6 +83,12 @@ extension EMRServerlessClientTypes.Application: Swift.Codable { if let updatedAt = self.updatedAt { try encodeContainer.encodeTimestamp(updatedAt, format: .epochSeconds, forKey: .updatedAt) } + if let workerTypeSpecifications = workerTypeSpecifications { + var workerTypeSpecificationsContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .workerTypeSpecifications) + for (dictKey0, workerTypeSpecificationMap0) in workerTypeSpecifications { + try workerTypeSpecificationsContainer.encode(workerTypeSpecificationMap0, forKey: ClientRuntime.Key(stringValue: dictKey0)) + } + } } public init (from decoder: Swift.Decoder) throws { @@ -132,6 +143,19 @@ extension EMRServerlessClientTypes.Application: Swift.Codable { networkConfiguration = networkConfigurationDecoded let architectureDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.Architecture.self, forKey: .architecture) architecture = architectureDecoded + let imageConfigurationDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.ImageConfiguration.self, forKey: .imageConfiguration) + imageConfiguration = imageConfigurationDecoded + let workerTypeSpecificationsContainer = try containerValues.decodeIfPresent([Swift.String: EMRServerlessClientTypes.WorkerTypeSpecification?].self, forKey: .workerTypeSpecifications) + var workerTypeSpecificationsDecoded0: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecification]? = nil + if let workerTypeSpecificationsContainer = workerTypeSpecificationsContainer { + workerTypeSpecificationsDecoded0 = [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecification]() + for (key0, workertypespecification0) in workerTypeSpecificationsContainer { + if let workertypespecification0 = workertypespecification0 { + workerTypeSpecificationsDecoded0?[key0] = workertypespecification0 + } + } + } + workerTypeSpecifications = workerTypeSpecificationsDecoded0 } } @@ -153,6 +177,8 @@ extension EMRServerlessClientTypes { /// The date and time when the application run was created. /// This member is required. public var createdAt: ClientRuntime.Date? + /// The image configuration applied to all worker types. + public var imageConfiguration: EMRServerlessClientTypes.ImageConfiguration? /// The initial capacity of the application. public var initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? /// The maximum capacity of the application. This is cumulative across all workers at any given point in time during the lifespan of the application is created. No new resources will be created once any one of the defined limits is hit. @@ -161,7 +187,7 @@ extension EMRServerlessClientTypes { public var name: Swift.String? /// The network configuration for customer VPC connectivity for the application. public var networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? - /// The EMR release version associated with the application. + /// The EMR release associated with the application. /// This member is required. public var releaseLabel: Swift.String? /// The state of the application. @@ -177,6 +203,8 @@ extension EMRServerlessClientTypes { /// The date and time when the application run was last updated. /// This member is required. public var updatedAt: ClientRuntime.Date? + /// The specification applied to each worker type. + public var workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecification]? public init ( applicationId: Swift.String? = nil, @@ -185,6 +213,7 @@ extension EMRServerlessClientTypes { autoStartConfiguration: EMRServerlessClientTypes.AutoStartConfig? = nil, autoStopConfiguration: EMRServerlessClientTypes.AutoStopConfig? = nil, createdAt: ClientRuntime.Date? = nil, + imageConfiguration: EMRServerlessClientTypes.ImageConfiguration? = nil, initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? = nil, maximumCapacity: EMRServerlessClientTypes.MaximumAllowedResources? = nil, name: Swift.String? = nil, @@ -194,7 +223,8 @@ extension EMRServerlessClientTypes { stateDetails: Swift.String? = nil, tags: [Swift.String:Swift.String]? = nil, type: Swift.String? = nil, - updatedAt: ClientRuntime.Date? = nil + updatedAt: ClientRuntime.Date? = nil, + workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecification]? = nil ) { self.applicationId = applicationId @@ -203,6 +233,7 @@ extension EMRServerlessClientTypes { self.autoStartConfiguration = autoStartConfiguration self.autoStopConfiguration = autoStopConfiguration self.createdAt = createdAt + self.imageConfiguration = imageConfiguration self.initialCapacity = initialCapacity self.maximumCapacity = maximumCapacity self.name = name @@ -213,6 +244,7 @@ extension EMRServerlessClientTypes { self.tags = tags self.type = type self.updatedAt = updatedAt + self.workerTypeSpecifications = workerTypeSpecifications } } @@ -354,7 +386,7 @@ extension EMRServerlessClientTypes { public var id: Swift.String? /// The name of the application. public var name: Swift.String? - /// The EMR release version associated with the application. + /// The EMR release associated with the application. /// This member is required. public var releaseLabel: Swift.String? /// The state of the application. @@ -828,6 +860,7 @@ extension CreateApplicationInput: Swift.Encodable { case autoStartConfiguration case autoStopConfiguration case clientToken + case imageConfiguration case initialCapacity case maximumCapacity case name @@ -835,6 +868,7 @@ extension CreateApplicationInput: Swift.Encodable { case releaseLabel case tags case type + case workerTypeSpecifications } public func encode(to encoder: Swift.Encoder) throws { @@ -851,6 +885,9 @@ extension CreateApplicationInput: Swift.Encodable { if let clientToken = self.clientToken { try encodeContainer.encode(clientToken, forKey: .clientToken) } + if let imageConfiguration = self.imageConfiguration { + try encodeContainer.encode(imageConfiguration, forKey: .imageConfiguration) + } if let initialCapacity = initialCapacity { var initialCapacityContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .initialCapacity) for (dictKey0, initialCapacityConfigMap0) in initialCapacity { @@ -878,6 +915,12 @@ extension CreateApplicationInput: Swift.Encodable { if let type = self.type { try encodeContainer.encode(type, forKey: .type) } + if let workerTypeSpecifications = workerTypeSpecifications { + var workerTypeSpecificationsContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .workerTypeSpecifications) + for (dictKey0, workerTypeSpecificationInputMap0) in workerTypeSpecifications { + try workerTypeSpecificationsContainer.encode(workerTypeSpecificationInputMap0, forKey: ClientRuntime.Key(stringValue: dictKey0)) + } + } } } @@ -897,6 +940,8 @@ public struct CreateApplicationInput: Swift.Equatable { /// The client idempotency token of the application to create. Its value must be unique for each request. /// This member is required. public var clientToken: Swift.String? + /// The image configuration for all worker types. You can either set this parameter or imageConfiguration for each worker type in workerTypeSpecifications. + public var imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? /// The capacity to initialize when the application is created. public var initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? /// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit. @@ -905,7 +950,7 @@ public struct CreateApplicationInput: Swift.Equatable { public var name: Swift.String? /// The network configuration for customer VPC connectivity. public var networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? - /// The EMR release version associated with the application. + /// The EMR release associated with the application. /// This member is required. public var releaseLabel: Swift.String? /// The tags assigned to the application. @@ -913,25 +958,30 @@ public struct CreateApplicationInput: Swift.Equatable { /// The type of application you want to start, such as Spark or Hive. /// This member is required. public var type: Swift.String? + /// The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types. + public var workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? public init ( architecture: EMRServerlessClientTypes.Architecture? = nil, autoStartConfiguration: EMRServerlessClientTypes.AutoStartConfig? = nil, autoStopConfiguration: EMRServerlessClientTypes.AutoStopConfig? = nil, clientToken: Swift.String? = nil, + imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? = nil, initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? = nil, maximumCapacity: EMRServerlessClientTypes.MaximumAllowedResources? = nil, name: Swift.String? = nil, networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? = nil, releaseLabel: Swift.String? = nil, tags: [Swift.String:Swift.String]? = nil, - type: Swift.String? = nil + type: Swift.String? = nil, + workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? = nil ) { self.architecture = architecture self.autoStartConfiguration = autoStartConfiguration self.autoStopConfiguration = autoStopConfiguration self.clientToken = clientToken + self.imageConfiguration = imageConfiguration self.initialCapacity = initialCapacity self.maximumCapacity = maximumCapacity self.name = name @@ -939,6 +989,7 @@ public struct CreateApplicationInput: Swift.Equatable { self.releaseLabel = releaseLabel self.tags = tags self.type = type + self.workerTypeSpecifications = workerTypeSpecifications } } @@ -954,6 +1005,8 @@ struct CreateApplicationInputBody: Swift.Equatable { let autoStopConfiguration: EMRServerlessClientTypes.AutoStopConfig? let networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? let architecture: EMRServerlessClientTypes.Architecture? + let imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? + let workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? } extension CreateApplicationInputBody: Swift.Decodable { @@ -962,6 +1015,7 @@ extension CreateApplicationInputBody: Swift.Decodable { case autoStartConfiguration case autoStopConfiguration case clientToken + case imageConfiguration case initialCapacity case maximumCapacity case name @@ -969,6 +1023,7 @@ extension CreateApplicationInputBody: Swift.Decodable { case releaseLabel case tags case type + case workerTypeSpecifications } public init (from decoder: Swift.Decoder) throws { @@ -1013,6 +1068,19 @@ extension CreateApplicationInputBody: Swift.Decodable { networkConfiguration = networkConfigurationDecoded let architectureDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.Architecture.self, forKey: .architecture) architecture = architectureDecoded + let imageConfigurationDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.ImageConfigurationInput.self, forKey: .imageConfiguration) + imageConfiguration = imageConfigurationDecoded + let workerTypeSpecificationsContainer = try containerValues.decodeIfPresent([Swift.String: EMRServerlessClientTypes.WorkerTypeSpecificationInput?].self, forKey: .workerTypeSpecifications) + var workerTypeSpecificationsDecoded0: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? = nil + if let workerTypeSpecificationsContainer = workerTypeSpecificationsContainer { + workerTypeSpecificationsDecoded0 = [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]() + for (key0, workertypespecificationinput0) in workerTypeSpecificationsContainer { + if let workertypespecificationinput0 = workertypespecificationinput0 { + workerTypeSpecificationsDecoded0?[key0] = workertypespecificationinput0 + } + } + } + workerTypeSpecifications = workerTypeSpecificationsDecoded0 } } @@ -1029,6 +1097,7 @@ extension CreateApplicationOutputError { switch errorType { case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) } @@ -1038,6 +1107,7 @@ extension CreateApplicationOutputError { public enum CreateApplicationOutputError: Swift.Error, Swift.Equatable { case conflictException(ConflictException) case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) case validationException(ValidationException) case unknown(UnknownAWSHttpServiceError) } @@ -1545,6 +1615,87 @@ extension EMRServerlessClientTypes { } +extension EMRServerlessClientTypes.ImageConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case imageUri + case resolvedImageDigest + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let imageUri = self.imageUri { + try encodeContainer.encode(imageUri, forKey: .imageUri) + } + if let resolvedImageDigest = self.resolvedImageDigest { + try encodeContainer.encode(resolvedImageDigest, forKey: .resolvedImageDigest) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let imageUriDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .imageUri) + imageUri = imageUriDecoded + let resolvedImageDigestDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resolvedImageDigest) + resolvedImageDigest = resolvedImageDigestDecoded + } +} + +extension EMRServerlessClientTypes { + /// The applied image configuration. + public struct ImageConfiguration: Swift.Equatable { + /// The image URI. + /// This member is required. + public var imageUri: Swift.String? + /// The SHA256 digest of the image URI. This indicates which specific image the application is configured for. The image digest doesn't exist until an application has started. + public var resolvedImageDigest: Swift.String? + + public init ( + imageUri: Swift.String? = nil, + resolvedImageDigest: Swift.String? = nil + ) + { + self.imageUri = imageUri + self.resolvedImageDigest = resolvedImageDigest + } + } + +} + +extension EMRServerlessClientTypes.ImageConfigurationInput: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case imageUri + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let imageUri = self.imageUri { + try encodeContainer.encode(imageUri, forKey: .imageUri) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let imageUriDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .imageUri) + imageUri = imageUriDecoded + } +} + +extension EMRServerlessClientTypes { + /// The image configuration. + public struct ImageConfigurationInput: Swift.Equatable { + /// The URI of an image in the Amazon ECR registry. This field is required when you create a new application. If you leave this field blank in an update, Amazon EMR will remove the image configuration. + public var imageUri: Swift.String? + + public init ( + imageUri: Swift.String? = nil + ) + { + self.imageUri = imageUri + } + } + +} + extension EMRServerlessClientTypes.InitialCapacityConfig: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case workerConfiguration @@ -1848,7 +1999,7 @@ extension EMRServerlessClientTypes { public var name: Swift.String? /// The network configuration for customer VPC connectivity. public var networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? - /// The EMR release version associated with the application your job is running on. + /// The EMR release associated with the application your job is running on. /// This member is required. public var releaseLabel: Swift.String? /// The state of the job run. @@ -2067,7 +2218,7 @@ extension EMRServerlessClientTypes { public var id: Swift.String? /// The optional job run name. This doesn't have to be unique. public var name: Swift.String? - /// The EMR release version associated with the application your job is running on. + /// The EMR release associated with the application your job is running on. /// This member is required. public var releaseLabel: Swift.String? /// The state of the job run. @@ -3594,9 +3745,11 @@ extension UpdateApplicationInput: Swift.Encodable { case autoStartConfiguration case autoStopConfiguration case clientToken + case imageConfiguration case initialCapacity case maximumCapacity case networkConfiguration + case workerTypeSpecifications } public func encode(to encoder: Swift.Encoder) throws { @@ -3613,6 +3766,9 @@ extension UpdateApplicationInput: Swift.Encodable { if let clientToken = self.clientToken { try encodeContainer.encode(clientToken, forKey: .clientToken) } + if let imageConfiguration = self.imageConfiguration { + try encodeContainer.encode(imageConfiguration, forKey: .imageConfiguration) + } if let initialCapacity = initialCapacity { var initialCapacityContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .initialCapacity) for (dictKey0, initialCapacityConfigMap0) in initialCapacity { @@ -3625,6 +3781,12 @@ extension UpdateApplicationInput: Swift.Encodable { if let networkConfiguration = self.networkConfiguration { try encodeContainer.encode(networkConfiguration, forKey: .networkConfiguration) } + if let workerTypeSpecifications = workerTypeSpecifications { + var workerTypeSpecificationsContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .workerTypeSpecifications) + for (dictKey0, workerTypeSpecificationInputMap0) in workerTypeSpecifications { + try workerTypeSpecificationsContainer.encode(workerTypeSpecificationInputMap0, forKey: ClientRuntime.Key(stringValue: dictKey0)) + } + } } } @@ -3650,12 +3812,16 @@ public struct UpdateApplicationInput: Swift.Equatable { /// The client idempotency token of the application to update. Its value must be unique for each request. /// This member is required. public var clientToken: Swift.String? + /// The image configuration to be used for all worker types. You can either set this parameter or imageConfiguration for each worker type in WorkerTypeSpecificationInput. + public var imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? /// The capacity to initialize when the application is updated. public var initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? /// The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit. public var maximumCapacity: EMRServerlessClientTypes.MaximumAllowedResources? /// The network configuration for customer VPC connectivity. public var networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? + /// The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types. + public var workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? public init ( applicationId: Swift.String? = nil, @@ -3663,9 +3829,11 @@ public struct UpdateApplicationInput: Swift.Equatable { autoStartConfiguration: EMRServerlessClientTypes.AutoStartConfig? = nil, autoStopConfiguration: EMRServerlessClientTypes.AutoStopConfig? = nil, clientToken: Swift.String? = nil, + imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? = nil, initialCapacity: [Swift.String:EMRServerlessClientTypes.InitialCapacityConfig]? = nil, maximumCapacity: EMRServerlessClientTypes.MaximumAllowedResources? = nil, - networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? = nil + networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? = nil, + workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? = nil ) { self.applicationId = applicationId @@ -3673,9 +3841,11 @@ public struct UpdateApplicationInput: Swift.Equatable { self.autoStartConfiguration = autoStartConfiguration self.autoStopConfiguration = autoStopConfiguration self.clientToken = clientToken + self.imageConfiguration = imageConfiguration self.initialCapacity = initialCapacity self.maximumCapacity = maximumCapacity self.networkConfiguration = networkConfiguration + self.workerTypeSpecifications = workerTypeSpecifications } } @@ -3687,6 +3857,8 @@ struct UpdateApplicationInputBody: Swift.Equatable { let autoStopConfiguration: EMRServerlessClientTypes.AutoStopConfig? let networkConfiguration: EMRServerlessClientTypes.NetworkConfiguration? let architecture: EMRServerlessClientTypes.Architecture? + let imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? + let workerTypeSpecifications: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? } extension UpdateApplicationInputBody: Swift.Decodable { @@ -3695,9 +3867,11 @@ extension UpdateApplicationInputBody: Swift.Decodable { case autoStartConfiguration case autoStopConfiguration case clientToken + case imageConfiguration case initialCapacity case maximumCapacity case networkConfiguration + case workerTypeSpecifications } public init (from decoder: Swift.Decoder) throws { @@ -3725,6 +3899,19 @@ extension UpdateApplicationInputBody: Swift.Decodable { networkConfiguration = networkConfigurationDecoded let architectureDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.Architecture.self, forKey: .architecture) architecture = architectureDecoded + let imageConfigurationDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.ImageConfigurationInput.self, forKey: .imageConfiguration) + imageConfiguration = imageConfigurationDecoded + let workerTypeSpecificationsContainer = try containerValues.decodeIfPresent([Swift.String: EMRServerlessClientTypes.WorkerTypeSpecificationInput?].self, forKey: .workerTypeSpecifications) + var workerTypeSpecificationsDecoded0: [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]? = nil + if let workerTypeSpecificationsContainer = workerTypeSpecificationsContainer { + workerTypeSpecificationsDecoded0 = [Swift.String:EMRServerlessClientTypes.WorkerTypeSpecificationInput]() + for (key0, workertypespecificationinput0) in workerTypeSpecificationsContainer { + if let workertypespecificationinput0 = workertypespecificationinput0 { + workerTypeSpecificationsDecoded0?[key0] = workertypespecificationinput0 + } + } + } + workerTypeSpecifications = workerTypeSpecificationsDecoded0 } } @@ -3905,3 +4092,73 @@ extension EMRServerlessClientTypes { } } + +extension EMRServerlessClientTypes.WorkerTypeSpecification: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case imageConfiguration + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let imageConfiguration = self.imageConfiguration { + try encodeContainer.encode(imageConfiguration, forKey: .imageConfiguration) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let imageConfigurationDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.ImageConfiguration.self, forKey: .imageConfiguration) + imageConfiguration = imageConfigurationDecoded + } +} + +extension EMRServerlessClientTypes { + /// The specifications for a worker type. + public struct WorkerTypeSpecification: Swift.Equatable { + /// The image configuration for a worker type. + public var imageConfiguration: EMRServerlessClientTypes.ImageConfiguration? + + public init ( + imageConfiguration: EMRServerlessClientTypes.ImageConfiguration? = nil + ) + { + self.imageConfiguration = imageConfiguration + } + } + +} + +extension EMRServerlessClientTypes.WorkerTypeSpecificationInput: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case imageConfiguration + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let imageConfiguration = self.imageConfiguration { + try encodeContainer.encode(imageConfiguration, forKey: .imageConfiguration) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let imageConfigurationDecoded = try containerValues.decodeIfPresent(EMRServerlessClientTypes.ImageConfigurationInput.self, forKey: .imageConfiguration) + imageConfiguration = imageConfigurationDecoded + } +} + +extension EMRServerlessClientTypes { + /// The specifications for a worker type. + public struct WorkerTypeSpecificationInput: Swift.Equatable { + /// The image configuration for a worker type. + public var imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? + + public init ( + imageConfiguration: EMRServerlessClientTypes.ImageConfigurationInput? = nil + ) + { + self.imageConfiguration = imageConfiguration + } + } + +} diff --git a/Sources/Services/AWSEMRcontainers/Paginators.swift b/Sources/Services/AWSEMRcontainers/Paginators.swift index 30266cb9934..16e8f371e5b 100644 --- a/Sources/Services/AWSEMRcontainers/Paginators.swift +++ b/Sources/Services/AWSEMRcontainers/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListJobRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobRunsOutputResponse` extension EMRcontainersClient { + /// Paginate over `[ListJobRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobRunsOutputResponse` public func listJobRunsPaginated(input: ListJobRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobRunsInput.nextToken, outputKey: \ListJobRunsOutputResponse.nextToken, paginationFunction: self.listJobRuns(input:)) } @@ -30,24 +29,23 @@ extension ListJobRunsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobRunsPaginated` -/// to access the nested member `[EMRcontainersClientTypes.JobRun]` -/// - Returns: `[EMRcontainersClientTypes.JobRun]` extension PaginatorSequence where Input == ListJobRunsInput, Output == ListJobRunsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobRunsPaginated` + /// to access the nested member `[EMRcontainersClientTypes.JobRun]` + /// - Returns: `[EMRcontainersClientTypes.JobRun]` public func jobRuns() async throws -> [EMRcontainersClientTypes.JobRun] { return try await self.asyncCompactMap { item in item.jobRuns } } } - -/// Paginate over `[ListJobTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` extension EMRcontainersClient { + /// Paginate over `[ListJobTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` public func listJobTemplatesPaginated(input: ListJobTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobTemplatesInput.nextToken, outputKey: \ListJobTemplatesOutputResponse.nextToken, paginationFunction: self.listJobTemplates(input:)) } @@ -63,24 +61,23 @@ extension ListJobTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` -/// to access the nested member `[EMRcontainersClientTypes.JobTemplate]` -/// - Returns: `[EMRcontainersClientTypes.JobTemplate]` extension PaginatorSequence where Input == ListJobTemplatesInput, Output == ListJobTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` + /// to access the nested member `[EMRcontainersClientTypes.JobTemplate]` + /// - Returns: `[EMRcontainersClientTypes.JobTemplate]` public func templates() async throws -> [EMRcontainersClientTypes.JobTemplate] { return try await self.asyncCompactMap { item in item.templates } } } - -/// Paginate over `[ListManagedEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListManagedEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListManagedEndpointsOutputResponse` extension EMRcontainersClient { + /// Paginate over `[ListManagedEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedEndpointsOutputResponse` public func listManagedEndpointsPaginated(input: ListManagedEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedEndpointsInput.nextToken, outputKey: \ListManagedEndpointsOutputResponse.nextToken, paginationFunction: self.listManagedEndpoints(input:)) } @@ -99,24 +96,23 @@ extension ListManagedEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listManagedEndpointsPaginated` -/// to access the nested member `[EMRcontainersClientTypes.Endpoint]` -/// - Returns: `[EMRcontainersClientTypes.Endpoint]` extension PaginatorSequence where Input == ListManagedEndpointsInput, Output == ListManagedEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listManagedEndpointsPaginated` + /// to access the nested member `[EMRcontainersClientTypes.Endpoint]` + /// - Returns: `[EMRcontainersClientTypes.Endpoint]` public func endpoints() async throws -> [EMRcontainersClientTypes.Endpoint] { return try await self.asyncCompactMap { item in item.endpoints } } } - -/// Paginate over `[ListVirtualClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVirtualClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVirtualClustersOutputResponse` extension EMRcontainersClient { + /// Paginate over `[ListVirtualClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVirtualClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVirtualClustersOutputResponse` public func listVirtualClustersPaginated(input: ListVirtualClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVirtualClustersInput.nextToken, outputKey: \ListVirtualClustersOutputResponse.nextToken, paginationFunction: self.listVirtualClusters(input:)) } @@ -135,10 +131,10 @@ extension ListVirtualClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listVirtualClustersPaginated` -/// to access the nested member `[EMRcontainersClientTypes.VirtualCluster]` -/// - Returns: `[EMRcontainersClientTypes.VirtualCluster]` extension PaginatorSequence where Input == ListVirtualClustersInput, Output == ListVirtualClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listVirtualClustersPaginated` + /// to access the nested member `[EMRcontainersClientTypes.VirtualCluster]` + /// - Returns: `[EMRcontainersClientTypes.VirtualCluster]` public func virtualClusters() async throws -> [EMRcontainersClientTypes.VirtualCluster] { return try await self.asyncCompactMap { item in item.virtualClusters } } diff --git a/Sources/Services/AWSElastiCache/Paginators.swift b/Sources/Services/AWSElastiCache/Paginators.swift index 07b820c2698..dfd86e6dd57 100644 --- a/Sources/Services/AWSElastiCache/Paginators.swift +++ b/Sources/Services/AWSElastiCache/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCacheClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheClustersOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheClustersOutputResponse` public func describeCacheClustersPaginated(input: DescribeCacheClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheClustersInput.marker, outputKey: \DescribeCacheClustersOutputResponse.marker, paginationFunction: self.describeCacheClusters(input:)) } @@ -28,24 +27,23 @@ extension DescribeCacheClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheClustersPaginated` -/// to access the nested member `[ElastiCacheClientTypes.CacheCluster]` -/// - Returns: `[ElastiCacheClientTypes.CacheCluster]` extension PaginatorSequence where Input == DescribeCacheClustersInput, Output == DescribeCacheClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheClustersPaginated` + /// to access the nested member `[ElastiCacheClientTypes.CacheCluster]` + /// - Returns: `[ElastiCacheClientTypes.CacheCluster]` public func cacheClusters() async throws -> [ElastiCacheClientTypes.CacheCluster] { return try await self.asyncCompactMap { item in item.cacheClusters } } } - -/// Paginate over `[DescribeCacheEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheEngineVersionsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheEngineVersionsOutputResponse` public func describeCacheEngineVersionsPaginated(input: DescribeCacheEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheEngineVersionsInput.marker, outputKey: \DescribeCacheEngineVersionsOutputResponse.marker, paginationFunction: self.describeCacheEngineVersions(input:)) } @@ -63,24 +61,23 @@ extension DescribeCacheEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheEngineVersionsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.CacheEngineVersion]` -/// - Returns: `[ElastiCacheClientTypes.CacheEngineVersion]` extension PaginatorSequence where Input == DescribeCacheEngineVersionsInput, Output == DescribeCacheEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheEngineVersionsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.CacheEngineVersion]` + /// - Returns: `[ElastiCacheClientTypes.CacheEngineVersion]` public func cacheEngineVersions() async throws -> [ElastiCacheClientTypes.CacheEngineVersion] { return try await self.asyncCompactMap { item in item.cacheEngineVersions } } } - -/// Paginate over `[DescribeCacheParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheParameterGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheParameterGroupsOutputResponse` public func describeCacheParameterGroupsPaginated(input: DescribeCacheParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheParameterGroupsInput.marker, outputKey: \DescribeCacheParameterGroupsOutputResponse.marker, paginationFunction: self.describeCacheParameterGroups(input:)) } @@ -95,24 +92,23 @@ extension DescribeCacheParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheParameterGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.CacheParameterGroup]` -/// - Returns: `[ElastiCacheClientTypes.CacheParameterGroup]` extension PaginatorSequence where Input == DescribeCacheParameterGroupsInput, Output == DescribeCacheParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheParameterGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.CacheParameterGroup]` + /// - Returns: `[ElastiCacheClientTypes.CacheParameterGroup]` public func cacheParameterGroups() async throws -> [ElastiCacheClientTypes.CacheParameterGroup] { return try await self.asyncCompactMap { item in item.cacheParameterGroups } } } - -/// Paginate over `[DescribeCacheParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheParametersOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheParametersOutputResponse` public func describeCacheParametersPaginated(input: DescribeCacheParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheParametersInput.marker, outputKey: \DescribeCacheParametersOutputResponse.marker, paginationFunction: self.describeCacheParameters(input:)) } @@ -128,24 +124,23 @@ extension DescribeCacheParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheParametersPaginated` -/// to access the nested member `[ElastiCacheClientTypes.Parameter]` -/// - Returns: `[ElastiCacheClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeCacheParametersInput, Output == DescribeCacheParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheParametersPaginated` + /// to access the nested member `[ElastiCacheClientTypes.Parameter]` + /// - Returns: `[ElastiCacheClientTypes.Parameter]` public func parameters() async throws -> [ElastiCacheClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeCacheSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheSecurityGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheSecurityGroupsOutputResponse` public func describeCacheSecurityGroupsPaginated(input: DescribeCacheSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheSecurityGroupsInput.marker, outputKey: \DescribeCacheSecurityGroupsOutputResponse.marker, paginationFunction: self.describeCacheSecurityGroups(input:)) } @@ -160,24 +155,23 @@ extension DescribeCacheSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheSecurityGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.CacheSecurityGroup]` -/// - Returns: `[ElastiCacheClientTypes.CacheSecurityGroup]` extension PaginatorSequence where Input == DescribeCacheSecurityGroupsInput, Output == DescribeCacheSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheSecurityGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.CacheSecurityGroup]` + /// - Returns: `[ElastiCacheClientTypes.CacheSecurityGroup]` public func cacheSecurityGroups() async throws -> [ElastiCacheClientTypes.CacheSecurityGroup] { return try await self.asyncCompactMap { item in item.cacheSecurityGroups } } } - -/// Paginate over `[DescribeCacheSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCacheSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheSubnetGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeCacheSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCacheSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCacheSubnetGroupsOutputResponse` public func describeCacheSubnetGroupsPaginated(input: DescribeCacheSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCacheSubnetGroupsInput.marker, outputKey: \DescribeCacheSubnetGroupsOutputResponse.marker, paginationFunction: self.describeCacheSubnetGroups(input:)) } @@ -192,24 +186,23 @@ extension DescribeCacheSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCacheSubnetGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.CacheSubnetGroup]` -/// - Returns: `[ElastiCacheClientTypes.CacheSubnetGroup]` extension PaginatorSequence where Input == DescribeCacheSubnetGroupsInput, Output == DescribeCacheSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCacheSubnetGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.CacheSubnetGroup]` + /// - Returns: `[ElastiCacheClientTypes.CacheSubnetGroup]` public func cacheSubnetGroups() async throws -> [ElastiCacheClientTypes.CacheSubnetGroup] { return try await self.asyncCompactMap { item in item.cacheSubnetGroups } } } - -/// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` public func describeEngineDefaultParametersPaginated(input: DescribeEngineDefaultParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEngineDefaultParametersInput.marker, outputKey: \DescribeEngineDefaultParametersOutputResponse.engineDefaults?.marker, paginationFunction: self.describeEngineDefaultParameters(input:)) } @@ -224,24 +217,23 @@ extension DescribeEngineDefaultParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` -/// to access the nested member `[ElastiCacheClientTypes.Parameter]` -/// - Returns: `[ElastiCacheClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeEngineDefaultParametersInput, Output == DescribeEngineDefaultParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` + /// to access the nested member `[ElastiCacheClientTypes.Parameter]` + /// - Returns: `[ElastiCacheClientTypes.Parameter]` public func parameters() async throws -> [ElastiCacheClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.engineDefaults?.parameters } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -260,24 +252,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.Event]` -/// - Returns: `[ElastiCacheClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.Event]` + /// - Returns: `[ElastiCacheClientTypes.Event]` public func events() async throws -> [ElastiCacheClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeGlobalReplicationGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGlobalReplicationGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalReplicationGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeGlobalReplicationGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGlobalReplicationGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalReplicationGroupsOutputResponse` public func describeGlobalReplicationGroupsPaginated(input: DescribeGlobalReplicationGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGlobalReplicationGroupsInput.marker, outputKey: \DescribeGlobalReplicationGroupsOutputResponse.marker, paginationFunction: self.describeGlobalReplicationGroups(input:)) } @@ -293,24 +284,23 @@ extension DescribeGlobalReplicationGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGlobalReplicationGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.GlobalReplicationGroup]` -/// - Returns: `[ElastiCacheClientTypes.GlobalReplicationGroup]` extension PaginatorSequence where Input == DescribeGlobalReplicationGroupsInput, Output == DescribeGlobalReplicationGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGlobalReplicationGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.GlobalReplicationGroup]` + /// - Returns: `[ElastiCacheClientTypes.GlobalReplicationGroup]` public func globalReplicationGroups() async throws -> [ElastiCacheClientTypes.GlobalReplicationGroup] { return try await self.asyncCompactMap { item in item.globalReplicationGroups } } } - -/// Paginate over `[DescribeReplicationGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReplicationGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeReplicationGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationGroupsOutputResponse` public func describeReplicationGroupsPaginated(input: DescribeReplicationGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationGroupsInput.marker, outputKey: \DescribeReplicationGroupsOutputResponse.marker, paginationFunction: self.describeReplicationGroups(input:)) } @@ -325,24 +315,23 @@ extension DescribeReplicationGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReplicationGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.ReplicationGroup]` -/// - Returns: `[ElastiCacheClientTypes.ReplicationGroup]` extension PaginatorSequence where Input == DescribeReplicationGroupsInput, Output == DescribeReplicationGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReplicationGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.ReplicationGroup]` + /// - Returns: `[ElastiCacheClientTypes.ReplicationGroup]` public func replicationGroups() async throws -> [ElastiCacheClientTypes.ReplicationGroup] { return try await self.asyncCompactMap { item in item.replicationGroups } } } - -/// Paginate over `[DescribeReservedCacheNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedCacheNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedCacheNodesOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeReservedCacheNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedCacheNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedCacheNodesOutputResponse` public func describeReservedCacheNodesPaginated(input: DescribeReservedCacheNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedCacheNodesInput.marker, outputKey: \DescribeReservedCacheNodesOutputResponse.marker, paginationFunction: self.describeReservedCacheNodes(input:)) } @@ -362,24 +351,23 @@ extension DescribeReservedCacheNodesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedCacheNodesPaginated` -/// to access the nested member `[ElastiCacheClientTypes.ReservedCacheNode]` -/// - Returns: `[ElastiCacheClientTypes.ReservedCacheNode]` extension PaginatorSequence where Input == DescribeReservedCacheNodesInput, Output == DescribeReservedCacheNodesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedCacheNodesPaginated` + /// to access the nested member `[ElastiCacheClientTypes.ReservedCacheNode]` + /// - Returns: `[ElastiCacheClientTypes.ReservedCacheNode]` public func reservedCacheNodes() async throws -> [ElastiCacheClientTypes.ReservedCacheNode] { return try await self.asyncCompactMap { item in item.reservedCacheNodes } } } - -/// Paginate over `[DescribeReservedCacheNodesOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedCacheNodesOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedCacheNodesOfferingsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeReservedCacheNodesOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedCacheNodesOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedCacheNodesOfferingsOutputResponse` public func describeReservedCacheNodesOfferingsPaginated(input: DescribeReservedCacheNodesOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedCacheNodesOfferingsInput.marker, outputKey: \DescribeReservedCacheNodesOfferingsOutputResponse.marker, paginationFunction: self.describeReservedCacheNodesOfferings(input:)) } @@ -398,24 +386,23 @@ extension DescribeReservedCacheNodesOfferingsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedCacheNodesOfferingsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.ReservedCacheNodesOffering]` -/// - Returns: `[ElastiCacheClientTypes.ReservedCacheNodesOffering]` extension PaginatorSequence where Input == DescribeReservedCacheNodesOfferingsInput, Output == DescribeReservedCacheNodesOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedCacheNodesOfferingsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.ReservedCacheNodesOffering]` + /// - Returns: `[ElastiCacheClientTypes.ReservedCacheNodesOffering]` public func reservedCacheNodesOfferings() async throws -> [ElastiCacheClientTypes.ReservedCacheNodesOffering] { return try await self.asyncCompactMap { item in item.reservedCacheNodesOfferings } } } - -/// Paginate over `[DescribeServiceUpdatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeServiceUpdatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeServiceUpdatesOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeServiceUpdatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeServiceUpdatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeServiceUpdatesOutputResponse` public func describeServiceUpdatesPaginated(input: DescribeServiceUpdatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeServiceUpdatesInput.marker, outputKey: \DescribeServiceUpdatesOutputResponse.marker, paginationFunction: self.describeServiceUpdates(input:)) } @@ -431,24 +418,23 @@ extension DescribeServiceUpdatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeServiceUpdatesPaginated` -/// to access the nested member `[ElastiCacheClientTypes.ServiceUpdate]` -/// - Returns: `[ElastiCacheClientTypes.ServiceUpdate]` extension PaginatorSequence where Input == DescribeServiceUpdatesInput, Output == DescribeServiceUpdatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeServiceUpdatesPaginated` + /// to access the nested member `[ElastiCacheClientTypes.ServiceUpdate]` + /// - Returns: `[ElastiCacheClientTypes.ServiceUpdate]` public func serviceUpdates() async throws -> [ElastiCacheClientTypes.ServiceUpdate] { return try await self.asyncCompactMap { item in item.serviceUpdates } } } - -/// Paginate over `[DescribeSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` public func describeSnapshotsPaginated(input: DescribeSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotsInput.marker, outputKey: \DescribeSnapshotsOutputResponse.marker, paginationFunction: self.describeSnapshots(input:)) } @@ -467,24 +453,23 @@ extension DescribeSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.Snapshot]` -/// - Returns: `[ElastiCacheClientTypes.Snapshot]` extension PaginatorSequence where Input == DescribeSnapshotsInput, Output == DescribeSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.Snapshot]` + /// - Returns: `[ElastiCacheClientTypes.Snapshot]` public func snapshots() async throws -> [ElastiCacheClientTypes.Snapshot] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[DescribeUpdateActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUpdateActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUpdateActionsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeUpdateActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUpdateActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUpdateActionsOutputResponse` public func describeUpdateActionsPaginated(input: DescribeUpdateActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUpdateActionsInput.marker, outputKey: \DescribeUpdateActionsOutputResponse.marker, paginationFunction: self.describeUpdateActions(input:)) } @@ -506,24 +491,23 @@ extension DescribeUpdateActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUpdateActionsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.UpdateAction]` -/// - Returns: `[ElastiCacheClientTypes.UpdateAction]` extension PaginatorSequence where Input == DescribeUpdateActionsInput, Output == DescribeUpdateActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUpdateActionsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.UpdateAction]` + /// - Returns: `[ElastiCacheClientTypes.UpdateAction]` public func updateActions() async throws -> [ElastiCacheClientTypes.UpdateAction] { return try await self.asyncCompactMap { item in item.updateActions } } } - -/// Paginate over `[DescribeUserGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUserGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUserGroupsOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeUserGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUserGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUserGroupsOutputResponse` public func describeUserGroupsPaginated(input: DescribeUserGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUserGroupsInput.marker, outputKey: \DescribeUserGroupsOutputResponse.marker, paginationFunction: self.describeUserGroups(input:)) } @@ -538,24 +522,23 @@ extension DescribeUserGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUserGroupsPaginated` -/// to access the nested member `[ElastiCacheClientTypes.UserGroup]` -/// - Returns: `[ElastiCacheClientTypes.UserGroup]` extension PaginatorSequence where Input == DescribeUserGroupsInput, Output == DescribeUserGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUserGroupsPaginated` + /// to access the nested member `[ElastiCacheClientTypes.UserGroup]` + /// - Returns: `[ElastiCacheClientTypes.UserGroup]` public func userGroups() async throws -> [ElastiCacheClientTypes.UserGroup] { return try await self.asyncCompactMap { item in item.userGroups } } } - -/// Paginate over `[DescribeUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` extension ElastiCacheClient { + /// Paginate over `[DescribeUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` public func describeUsersPaginated(input: DescribeUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUsersInput.marker, outputKey: \DescribeUsersOutputResponse.marker, paginationFunction: self.describeUsers(input:)) } @@ -572,10 +555,10 @@ extension DescribeUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` -/// to access the nested member `[ElastiCacheClientTypes.User]` -/// - Returns: `[ElastiCacheClientTypes.User]` extension PaginatorSequence where Input == DescribeUsersInput, Output == DescribeUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` + /// to access the nested member `[ElastiCacheClientTypes.User]` + /// - Returns: `[ElastiCacheClientTypes.User]` public func users() async throws -> [ElastiCacheClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } diff --git a/Sources/Services/AWSElasticBeanstalk/Paginators.swift b/Sources/Services/AWSElasticBeanstalk/Paginators.swift index 111689e1fa9..6a86d56bcd8 100644 --- a/Sources/Services/AWSElasticBeanstalk/Paginators.swift +++ b/Sources/Services/AWSElasticBeanstalk/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeEnvironmentManagedActionHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEnvironmentManagedActionHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEnvironmentManagedActionHistoryOutputResponse` extension ElasticBeanstalkClient { + /// Paginate over `[DescribeEnvironmentManagedActionHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEnvironmentManagedActionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEnvironmentManagedActionHistoryOutputResponse` public func describeEnvironmentManagedActionHistoryPaginated(input: DescribeEnvironmentManagedActionHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEnvironmentManagedActionHistoryInput.nextToken, outputKey: \DescribeEnvironmentManagedActionHistoryOutputResponse.nextToken, paginationFunction: self.describeEnvironmentManagedActionHistory(input:)) } @@ -27,24 +26,23 @@ extension DescribeEnvironmentManagedActionHistoryInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEnvironmentManagedActionHistoryPaginated` -/// to access the nested member `[ElasticBeanstalkClientTypes.ManagedActionHistoryItem]` -/// - Returns: `[ElasticBeanstalkClientTypes.ManagedActionHistoryItem]` extension PaginatorSequence where Input == DescribeEnvironmentManagedActionHistoryInput, Output == DescribeEnvironmentManagedActionHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEnvironmentManagedActionHistoryPaginated` + /// to access the nested member `[ElasticBeanstalkClientTypes.ManagedActionHistoryItem]` + /// - Returns: `[ElasticBeanstalkClientTypes.ManagedActionHistoryItem]` public func managedActionHistoryItems() async throws -> [ElasticBeanstalkClientTypes.ManagedActionHistoryItem] { return try await self.asyncCompactMap { item in item.managedActionHistoryItems } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension ElasticBeanstalkClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.nextToken, outputKey: \DescribeEventsOutputResponse.nextToken, paginationFunction: self.describeEvents(input:)) } @@ -68,24 +66,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[ElasticBeanstalkClientTypes.EventDescription]` -/// - Returns: `[ElasticBeanstalkClientTypes.EventDescription]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[ElasticBeanstalkClientTypes.EventDescription]` + /// - Returns: `[ElasticBeanstalkClientTypes.EventDescription]` public func events() async throws -> [ElasticBeanstalkClientTypes.EventDescription] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[ListPlatformBranchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPlatformBranchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPlatformBranchesOutputResponse` extension ElasticBeanstalkClient { + /// Paginate over `[ListPlatformBranchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPlatformBranchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPlatformBranchesOutputResponse` public func listPlatformBranchesPaginated(input: ListPlatformBranchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPlatformBranchesInput.nextToken, outputKey: \ListPlatformBranchesOutputResponse.nextToken, paginationFunction: self.listPlatformBranches(input:)) } @@ -99,16 +96,15 @@ extension ListPlatformBranchesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPlatformVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPlatformVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPlatformVersionsOutputResponse` extension ElasticBeanstalkClient { + /// Paginate over `[ListPlatformVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPlatformVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPlatformVersionsOutputResponse` public func listPlatformVersionsPaginated(input: ListPlatformVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPlatformVersionsInput.nextToken, outputKey: \ListPlatformVersionsOutputResponse.nextToken, paginationFunction: self.listPlatformVersions(input:)) } @@ -123,10 +119,10 @@ extension ListPlatformVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPlatformVersionsPaginated` -/// to access the nested member `[ElasticBeanstalkClientTypes.PlatformSummary]` -/// - Returns: `[ElasticBeanstalkClientTypes.PlatformSummary]` extension PaginatorSequence where Input == ListPlatformVersionsInput, Output == ListPlatformVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPlatformVersionsPaginated` + /// to access the nested member `[ElasticBeanstalkClientTypes.PlatformSummary]` + /// - Returns: `[ElasticBeanstalkClientTypes.PlatformSummary]` public func platformSummaryList() async throws -> [ElasticBeanstalkClientTypes.PlatformSummary] { return try await self.asyncCompactMap { item in item.platformSummaryList } } diff --git a/Sources/Services/AWSElasticInference/Paginators.swift b/Sources/Services/AWSElasticInference/Paginators.swift index 695bcfb8831..5c841f2753e 100644 --- a/Sources/Services/AWSElasticInference/Paginators.swift +++ b/Sources/Services/AWSElasticInference/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAcceleratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAcceleratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAcceleratorsOutputResponse` extension ElasticInferenceClient { + /// Paginate over `[DescribeAcceleratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAcceleratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAcceleratorsOutputResponse` public func describeAcceleratorsPaginated(input: DescribeAcceleratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAcceleratorsInput.nextToken, outputKey: \DescribeAcceleratorsOutputResponse.nextToken, paginationFunction: self.describeAccelerators(input:)) } diff --git a/Sources/Services/AWSElasticLoadBalancing/Paginators.swift b/Sources/Services/AWSElasticLoadBalancing/Paginators.swift index 47e6b86dc6b..a9b74cd876d 100644 --- a/Sources/Services/AWSElasticLoadBalancing/Paginators.swift +++ b/Sources/Services/AWSElasticLoadBalancing/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeLoadBalancersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLoadBalancersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLoadBalancersOutputResponse` extension ElasticLoadBalancingClient { + /// Paginate over `[DescribeLoadBalancersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLoadBalancersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLoadBalancersOutputResponse` public func describeLoadBalancersPaginated(input: DescribeLoadBalancersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLoadBalancersInput.marker, outputKey: \DescribeLoadBalancersOutputResponse.nextMarker, paginationFunction: self.describeLoadBalancers(input:)) } @@ -26,10 +25,10 @@ extension DescribeLoadBalancersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLoadBalancersPaginated` -/// to access the nested member `[ElasticLoadBalancingClientTypes.LoadBalancerDescription]` -/// - Returns: `[ElasticLoadBalancingClientTypes.LoadBalancerDescription]` extension PaginatorSequence where Input == DescribeLoadBalancersInput, Output == DescribeLoadBalancersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLoadBalancersPaginated` + /// to access the nested member `[ElasticLoadBalancingClientTypes.LoadBalancerDescription]` + /// - Returns: `[ElasticLoadBalancingClientTypes.LoadBalancerDescription]` public func loadBalancerDescriptions() async throws -> [ElasticLoadBalancingClientTypes.LoadBalancerDescription] { return try await self.asyncCompactMap { item in item.loadBalancerDescriptions } } diff --git a/Sources/Services/AWSElasticLoadBalancingv2/Paginators.swift b/Sources/Services/AWSElasticLoadBalancingv2/Paginators.swift index fb095e7c050..d1d1d9029e7 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/Paginators.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeListenersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeListenersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeListenersOutputResponse` extension ElasticLoadBalancingv2Client { + /// Paginate over `[DescribeListenersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeListenersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeListenersOutputResponse` public func describeListenersPaginated(input: DescribeListenersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeListenersInput.marker, outputKey: \DescribeListenersOutputResponse.nextMarker, paginationFunction: self.describeListeners(input:)) } @@ -27,24 +26,23 @@ extension DescribeListenersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeListenersPaginated` -/// to access the nested member `[ElasticLoadBalancingv2ClientTypes.Listener]` -/// - Returns: `[ElasticLoadBalancingv2ClientTypes.Listener]` extension PaginatorSequence where Input == DescribeListenersInput, Output == DescribeListenersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeListenersPaginated` + /// to access the nested member `[ElasticLoadBalancingv2ClientTypes.Listener]` + /// - Returns: `[ElasticLoadBalancingv2ClientTypes.Listener]` public func listeners() async throws -> [ElasticLoadBalancingv2ClientTypes.Listener] { return try await self.asyncCompactMap { item in item.listeners } } } - -/// Paginate over `[DescribeLoadBalancersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeLoadBalancersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeLoadBalancersOutputResponse` extension ElasticLoadBalancingv2Client { + /// Paginate over `[DescribeLoadBalancersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeLoadBalancersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeLoadBalancersOutputResponse` public func describeLoadBalancersPaginated(input: DescribeLoadBalancersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeLoadBalancersInput.marker, outputKey: \DescribeLoadBalancersOutputResponse.nextMarker, paginationFunction: self.describeLoadBalancers(input:)) } @@ -60,24 +58,23 @@ extension DescribeLoadBalancersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeLoadBalancersPaginated` -/// to access the nested member `[ElasticLoadBalancingv2ClientTypes.LoadBalancer]` -/// - Returns: `[ElasticLoadBalancingv2ClientTypes.LoadBalancer]` extension PaginatorSequence where Input == DescribeLoadBalancersInput, Output == DescribeLoadBalancersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeLoadBalancersPaginated` + /// to access the nested member `[ElasticLoadBalancingv2ClientTypes.LoadBalancer]` + /// - Returns: `[ElasticLoadBalancingv2ClientTypes.LoadBalancer]` public func loadBalancers() async throws -> [ElasticLoadBalancingv2ClientTypes.LoadBalancer] { return try await self.asyncCompactMap { item in item.loadBalancers } } } - -/// Paginate over `[DescribeTargetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTargetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTargetGroupsOutputResponse` extension ElasticLoadBalancingv2Client { + /// Paginate over `[DescribeTargetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTargetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTargetGroupsOutputResponse` public func describeTargetGroupsPaginated(input: DescribeTargetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTargetGroupsInput.marker, outputKey: \DescribeTargetGroupsOutputResponse.nextMarker, paginationFunction: self.describeTargetGroups(input:)) } @@ -94,10 +91,10 @@ extension DescribeTargetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTargetGroupsPaginated` -/// to access the nested member `[ElasticLoadBalancingv2ClientTypes.TargetGroup]` -/// - Returns: `[ElasticLoadBalancingv2ClientTypes.TargetGroup]` extension PaginatorSequence where Input == DescribeTargetGroupsInput, Output == DescribeTargetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTargetGroupsPaginated` + /// to access the nested member `[ElasticLoadBalancingv2ClientTypes.TargetGroup]` + /// - Returns: `[ElasticLoadBalancingv2ClientTypes.TargetGroup]` public func targetGroups() async throws -> [ElasticLoadBalancingv2ClientTypes.TargetGroup] { return try await self.asyncCompactMap { item in item.targetGroups } } diff --git a/Sources/Services/AWSElasticTranscoder/Paginators.swift b/Sources/Services/AWSElasticTranscoder/Paginators.swift index 8e358a78b9e..82deb798631 100644 --- a/Sources/Services/AWSElasticTranscoder/Paginators.swift +++ b/Sources/Services/AWSElasticTranscoder/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListJobsByPipelineOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsByPipelineInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsByPipelineOutputResponse` extension ElasticTranscoderClient { + /// Paginate over `[ListJobsByPipelineOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsByPipelineInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsByPipelineOutputResponse` public func listJobsByPipelinePaginated(input: ListJobsByPipelineInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsByPipelineInput.pageToken, outputKey: \ListJobsByPipelineOutputResponse.nextPageToken, paginationFunction: self.listJobsByPipeline(input:)) } @@ -26,24 +25,23 @@ extension ListJobsByPipelineInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsByPipelinePaginated` -/// to access the nested member `[ElasticTranscoderClientTypes.Job]` -/// - Returns: `[ElasticTranscoderClientTypes.Job]` extension PaginatorSequence where Input == ListJobsByPipelineInput, Output == ListJobsByPipelineOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsByPipelinePaginated` + /// to access the nested member `[ElasticTranscoderClientTypes.Job]` + /// - Returns: `[ElasticTranscoderClientTypes.Job]` public func jobs() async throws -> [ElasticTranscoderClientTypes.Job] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListJobsByStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsByStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsByStatusOutputResponse` extension ElasticTranscoderClient { + /// Paginate over `[ListJobsByStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsByStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsByStatusOutputResponse` public func listJobsByStatusPaginated(input: ListJobsByStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsByStatusInput.pageToken, outputKey: \ListJobsByStatusOutputResponse.nextPageToken, paginationFunction: self.listJobsByStatus(input:)) } @@ -58,24 +56,23 @@ extension ListJobsByStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsByStatusPaginated` -/// to access the nested member `[ElasticTranscoderClientTypes.Job]` -/// - Returns: `[ElasticTranscoderClientTypes.Job]` extension PaginatorSequence where Input == ListJobsByStatusInput, Output == ListJobsByStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsByStatusPaginated` + /// to access the nested member `[ElasticTranscoderClientTypes.Job]` + /// - Returns: `[ElasticTranscoderClientTypes.Job]` public func jobs() async throws -> [ElasticTranscoderClientTypes.Job] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` extension ElasticTranscoderClient { + /// Paginate over `[ListPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` public func listPipelinesPaginated(input: ListPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelinesInput.pageToken, outputKey: \ListPipelinesOutputResponse.nextPageToken, paginationFunction: self.listPipelines(input:)) } @@ -89,24 +86,23 @@ extension ListPipelinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` -/// to access the nested member `[ElasticTranscoderClientTypes.Pipeline]` -/// - Returns: `[ElasticTranscoderClientTypes.Pipeline]` extension PaginatorSequence where Input == ListPipelinesInput, Output == ListPipelinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` + /// to access the nested member `[ElasticTranscoderClientTypes.Pipeline]` + /// - Returns: `[ElasticTranscoderClientTypes.Pipeline]` public func pipelines() async throws -> [ElasticTranscoderClientTypes.Pipeline] { return try await self.asyncCompactMap { item in item.pipelines } } } - -/// Paginate over `[ListPresetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPresetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPresetsOutputResponse` extension ElasticTranscoderClient { + /// Paginate over `[ListPresetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPresetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPresetsOutputResponse` public func listPresetsPaginated(input: ListPresetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPresetsInput.pageToken, outputKey: \ListPresetsOutputResponse.nextPageToken, paginationFunction: self.listPresets(input:)) } @@ -120,10 +116,10 @@ extension ListPresetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPresetsPaginated` -/// to access the nested member `[ElasticTranscoderClientTypes.Preset]` -/// - Returns: `[ElasticTranscoderClientTypes.Preset]` extension PaginatorSequence where Input == ListPresetsInput, Output == ListPresetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPresetsPaginated` + /// to access the nested member `[ElasticTranscoderClientTypes.Preset]` + /// - Returns: `[ElasticTranscoderClientTypes.Preset]` public func presets() async throws -> [ElasticTranscoderClientTypes.Preset] { return try await self.asyncCompactMap { item in item.presets } } diff --git a/Sources/Services/AWSElasticsearchService/Paginators.swift b/Sources/Services/AWSElasticsearchService/Paginators.swift index 15a95dc7e4e..9e9fd8f5646 100644 --- a/Sources/Services/AWSElasticsearchService/Paginators.swift +++ b/Sources/Services/AWSElasticsearchService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDomainAutoTunesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDomainAutoTunesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainAutoTunesOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribeDomainAutoTunesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDomainAutoTunesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainAutoTunesOutputResponse` public func describeDomainAutoTunesPaginated(input: DescribeDomainAutoTunesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDomainAutoTunesInput.nextToken, outputKey: \DescribeDomainAutoTunesOutputResponse.nextToken, paginationFunction: self.describeDomainAutoTunes(input:)) } @@ -25,16 +24,15 @@ extension DescribeDomainAutoTunesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeInboundCrossClusterSearchConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInboundCrossClusterSearchConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInboundCrossClusterSearchConnectionsOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribeInboundCrossClusterSearchConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInboundCrossClusterSearchConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInboundCrossClusterSearchConnectionsOutputResponse` public func describeInboundCrossClusterSearchConnectionsPaginated(input: DescribeInboundCrossClusterSearchConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInboundCrossClusterSearchConnectionsInput.nextToken, outputKey: \DescribeInboundCrossClusterSearchConnectionsOutputResponse.nextToken, paginationFunction: self.describeInboundCrossClusterSearchConnections(input:)) } @@ -48,16 +46,15 @@ extension DescribeInboundCrossClusterSearchConnectionsInput: ClientRuntime.Pagin nextToken: token )} } - -/// Paginate over `[DescribeOutboundCrossClusterSearchConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOutboundCrossClusterSearchConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOutboundCrossClusterSearchConnectionsOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribeOutboundCrossClusterSearchConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOutboundCrossClusterSearchConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOutboundCrossClusterSearchConnectionsOutputResponse` public func describeOutboundCrossClusterSearchConnectionsPaginated(input: DescribeOutboundCrossClusterSearchConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOutboundCrossClusterSearchConnectionsInput.nextToken, outputKey: \DescribeOutboundCrossClusterSearchConnectionsOutputResponse.nextToken, paginationFunction: self.describeOutboundCrossClusterSearchConnections(input:)) } @@ -71,16 +68,15 @@ extension DescribeOutboundCrossClusterSearchConnectionsInput: ClientRuntime.Pagi nextToken: token )} } - -/// Paginate over `[DescribePackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePackagesOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribePackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePackagesOutputResponse` public func describePackagesPaginated(input: DescribePackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePackagesInput.nextToken, outputKey: \DescribePackagesOutputResponse.nextToken, paginationFunction: self.describePackages(input:)) } @@ -94,16 +90,15 @@ extension DescribePackagesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeReservedElasticsearchInstanceOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedElasticsearchInstanceOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedElasticsearchInstanceOfferingsOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribeReservedElasticsearchInstanceOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedElasticsearchInstanceOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedElasticsearchInstanceOfferingsOutputResponse` public func describeReservedElasticsearchInstanceOfferingsPaginated(input: DescribeReservedElasticsearchInstanceOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedElasticsearchInstanceOfferingsInput.nextToken, outputKey: \DescribeReservedElasticsearchInstanceOfferingsOutputResponse.nextToken, paginationFunction: self.describeReservedElasticsearchInstanceOfferings(input:)) } @@ -117,16 +112,15 @@ extension DescribeReservedElasticsearchInstanceOfferingsInput: ClientRuntime.Pag reservedElasticsearchInstanceOfferingId: self.reservedElasticsearchInstanceOfferingId )} } - -/// Paginate over `[DescribeReservedElasticsearchInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedElasticsearchInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedElasticsearchInstancesOutputResponse` extension ElasticsearchClient { + /// Paginate over `[DescribeReservedElasticsearchInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedElasticsearchInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedElasticsearchInstancesOutputResponse` public func describeReservedElasticsearchInstancesPaginated(input: DescribeReservedElasticsearchInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedElasticsearchInstancesInput.nextToken, outputKey: \DescribeReservedElasticsearchInstancesOutputResponse.nextToken, paginationFunction: self.describeReservedElasticsearchInstances(input:)) } @@ -140,16 +134,15 @@ extension DescribeReservedElasticsearchInstancesInput: ClientRuntime.PaginateTok reservedElasticsearchInstanceId: self.reservedElasticsearchInstanceId )} } - -/// Paginate over `[GetPackageVersionHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPackageVersionHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPackageVersionHistoryOutputResponse` extension ElasticsearchClient { + /// Paginate over `[GetPackageVersionHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPackageVersionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPackageVersionHistoryOutputResponse` public func getPackageVersionHistoryPaginated(input: GetPackageVersionHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPackageVersionHistoryInput.nextToken, outputKey: \GetPackageVersionHistoryOutputResponse.nextToken, paginationFunction: self.getPackageVersionHistory(input:)) } @@ -163,16 +156,15 @@ extension GetPackageVersionHistoryInput: ClientRuntime.PaginateToken { packageID: self.packageID )} } - -/// Paginate over `[GetUpgradeHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUpgradeHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUpgradeHistoryOutputResponse` extension ElasticsearchClient { + /// Paginate over `[GetUpgradeHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUpgradeHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUpgradeHistoryOutputResponse` public func getUpgradeHistoryPaginated(input: GetUpgradeHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUpgradeHistoryInput.nextToken, outputKey: \GetUpgradeHistoryOutputResponse.nextToken, paginationFunction: self.getUpgradeHistory(input:)) } @@ -186,16 +178,15 @@ extension GetUpgradeHistoryInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDomainsForPackageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsForPackageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsForPackageOutputResponse` extension ElasticsearchClient { + /// Paginate over `[ListDomainsForPackageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsForPackageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsForPackageOutputResponse` public func listDomainsForPackagePaginated(input: ListDomainsForPackageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsForPackageInput.nextToken, outputKey: \ListDomainsForPackageOutputResponse.nextToken, paginationFunction: self.listDomainsForPackage(input:)) } @@ -209,16 +200,15 @@ extension ListDomainsForPackageInput: ClientRuntime.PaginateToken { packageID: self.packageID )} } - -/// Paginate over `[ListElasticsearchInstanceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListElasticsearchInstanceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListElasticsearchInstanceTypesOutputResponse` extension ElasticsearchClient { + /// Paginate over `[ListElasticsearchInstanceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListElasticsearchInstanceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListElasticsearchInstanceTypesOutputResponse` public func listElasticsearchInstanceTypesPaginated(input: ListElasticsearchInstanceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListElasticsearchInstanceTypesInput.nextToken, outputKey: \ListElasticsearchInstanceTypesOutputResponse.nextToken, paginationFunction: self.listElasticsearchInstanceTypes(input:)) } @@ -233,16 +223,15 @@ extension ListElasticsearchInstanceTypesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListElasticsearchVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListElasticsearchVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListElasticsearchVersionsOutputResponse` extension ElasticsearchClient { + /// Paginate over `[ListElasticsearchVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListElasticsearchVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListElasticsearchVersionsOutputResponse` public func listElasticsearchVersionsPaginated(input: ListElasticsearchVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListElasticsearchVersionsInput.nextToken, outputKey: \ListElasticsearchVersionsOutputResponse.nextToken, paginationFunction: self.listElasticsearchVersions(input:)) } @@ -255,16 +244,15 @@ extension ListElasticsearchVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPackagesForDomainOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagesForDomainInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagesForDomainOutputResponse` extension ElasticsearchClient { + /// Paginate over `[ListPackagesForDomainOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagesForDomainInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagesForDomainOutputResponse` public func listPackagesForDomainPaginated(input: ListPackagesForDomainInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagesForDomainInput.nextToken, outputKey: \ListPackagesForDomainOutputResponse.nextToken, paginationFunction: self.listPackagesForDomain(input:)) } diff --git a/Sources/Services/AWSEventBridge/EndpointResolver.swift b/Sources/Services/AWSEventBridge/EndpointResolver.swift index 5fdc7c350f8..ebf1111343d 100644 --- a/Sources/Services/AWSEventBridge/EndpointResolver.swift +++ b/Sources/Services/AWSEventBridge/EndpointResolver.swift @@ -39,7 +39,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"EndpointId\":{\"required\":false,\"documentation\":\"Operation parameter for EndpointId\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"EndpointId\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"EndpointId\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{\"authSchemes\":[{\"signingRegionSet\":[\"*\"],\"name\":\"sigv4a\",\"signingName\":\"events\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"signingRegionSet\":[\"*\"],\"name\":\"sigv4a\",\"signingName\":\"events\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"signingRegionSet\":[\"*\"],\"name\":\"sigv4a\",\"signingName\":\"events\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"EndpointId must be a valid host label.\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-west-1\"]}],\"endpoint\":{\"url\":\"https://events.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-east-1\"]}],\"endpoint\":{\"url\":\"https://events.us-gov-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://events-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://events.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://events.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"EndpointId\":{\"required\":false,\"documentation\":\"Operation parameter for EndpointId\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"EndpointId\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"EndpointId\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{\"authSchemes\":[{\"name\":\"sigv4a\",\"signingName\":\"events\",\"signingRegionSet\":[\"*\"]}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4a\",\"signingName\":\"events\",\"signingRegionSet\":[\"*\"]}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4a\",\"signingName\":\"events\",\"signingRegionSet\":[\"*\"]}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"EndpointId must be a valid host label.\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-west-1\"]}],\"endpoint\":{\"url\":\"https://events.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-east-1\"]}],\"endpoint\":{\"url\":\"https://events.us-gov-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://events-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://events.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://events.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSFMS/Paginators.swift b/Sources/Services/AWSFMS/Paginators.swift index b7a655bd2e9..3e31bec1a20 100644 --- a/Sources/Services/AWSFMS/Paginators.swift +++ b/Sources/Services/AWSFMS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAppsListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppsListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppsListsOutputResponse` extension FMSClient { + /// Paginate over `[ListAppsListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppsListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppsListsOutputResponse` public func listAppsListsPaginated(input: ListAppsListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppsListsInput.nextToken, outputKey: \ListAppsListsOutputResponse.nextToken, paginationFunction: self.listAppsLists(input:)) } @@ -26,24 +25,23 @@ extension ListAppsListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAppsListsPaginated` -/// to access the nested member `[FMSClientTypes.AppsListDataSummary]` -/// - Returns: `[FMSClientTypes.AppsListDataSummary]` extension PaginatorSequence where Input == ListAppsListsInput, Output == ListAppsListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAppsListsPaginated` + /// to access the nested member `[FMSClientTypes.AppsListDataSummary]` + /// - Returns: `[FMSClientTypes.AppsListDataSummary]` public func appsLists() async throws -> [FMSClientTypes.AppsListDataSummary] { return try await self.asyncCompactMap { item in item.appsLists } } } - -/// Paginate over `[ListComplianceStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComplianceStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComplianceStatusOutputResponse` extension FMSClient { + /// Paginate over `[ListComplianceStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComplianceStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComplianceStatusOutputResponse` public func listComplianceStatusPaginated(input: ListComplianceStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComplianceStatusInput.nextToken, outputKey: \ListComplianceStatusOutputResponse.nextToken, paginationFunction: self.listComplianceStatus(input:)) } @@ -58,24 +56,23 @@ extension ListComplianceStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComplianceStatusPaginated` -/// to access the nested member `[FMSClientTypes.PolicyComplianceStatus]` -/// - Returns: `[FMSClientTypes.PolicyComplianceStatus]` extension PaginatorSequence where Input == ListComplianceStatusInput, Output == ListComplianceStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComplianceStatusPaginated` + /// to access the nested member `[FMSClientTypes.PolicyComplianceStatus]` + /// - Returns: `[FMSClientTypes.PolicyComplianceStatus]` public func policyComplianceStatusList() async throws -> [FMSClientTypes.PolicyComplianceStatus] { return try await self.asyncCompactMap { item in item.policyComplianceStatusList } } } - -/// Paginate over `[ListMemberAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMemberAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMemberAccountsOutputResponse` extension FMSClient { + /// Paginate over `[ListMemberAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMemberAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMemberAccountsOutputResponse` public func listMemberAccountsPaginated(input: ListMemberAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMemberAccountsInput.nextToken, outputKey: \ListMemberAccountsOutputResponse.nextToken, paginationFunction: self.listMemberAccounts(input:)) } @@ -89,24 +86,23 @@ extension ListMemberAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMemberAccountsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListMemberAccountsInput, Output == ListMemberAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMemberAccountsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func memberAccounts() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.memberAccounts } } } - -/// Paginate over `[ListPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` extension FMSClient { + /// Paginate over `[ListPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` public func listPoliciesPaginated(input: ListPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoliciesInput.nextToken, outputKey: \ListPoliciesOutputResponse.nextToken, paginationFunction: self.listPolicies(input:)) } @@ -120,24 +116,23 @@ extension ListPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` -/// to access the nested member `[FMSClientTypes.PolicySummary]` -/// - Returns: `[FMSClientTypes.PolicySummary]` extension PaginatorSequence where Input == ListPoliciesInput, Output == ListPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` + /// to access the nested member `[FMSClientTypes.PolicySummary]` + /// - Returns: `[FMSClientTypes.PolicySummary]` public func policyList() async throws -> [FMSClientTypes.PolicySummary] { return try await self.asyncCompactMap { item in item.policyList } } } - -/// Paginate over `[ListProtocolsListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProtocolsListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProtocolsListsOutputResponse` extension FMSClient { + /// Paginate over `[ListProtocolsListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProtocolsListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProtocolsListsOutputResponse` public func listProtocolsListsPaginated(input: ListProtocolsListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProtocolsListsInput.nextToken, outputKey: \ListProtocolsListsOutputResponse.nextToken, paginationFunction: self.listProtocolsLists(input:)) } @@ -152,24 +147,23 @@ extension ListProtocolsListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProtocolsListsPaginated` -/// to access the nested member `[FMSClientTypes.ProtocolsListDataSummary]` -/// - Returns: `[FMSClientTypes.ProtocolsListDataSummary]` extension PaginatorSequence where Input == ListProtocolsListsInput, Output == ListProtocolsListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProtocolsListsPaginated` + /// to access the nested member `[FMSClientTypes.ProtocolsListDataSummary]` + /// - Returns: `[FMSClientTypes.ProtocolsListDataSummary]` public func protocolsLists() async throws -> [FMSClientTypes.ProtocolsListDataSummary] { return try await self.asyncCompactMap { item in item.protocolsLists } } } - -/// Paginate over `[ListThirdPartyFirewallFirewallPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThirdPartyFirewallFirewallPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThirdPartyFirewallFirewallPoliciesOutputResponse` extension FMSClient { + /// Paginate over `[ListThirdPartyFirewallFirewallPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThirdPartyFirewallFirewallPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThirdPartyFirewallFirewallPoliciesOutputResponse` public func listThirdPartyFirewallFirewallPoliciesPaginated(input: ListThirdPartyFirewallFirewallPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThirdPartyFirewallFirewallPoliciesInput.nextToken, outputKey: \ListThirdPartyFirewallFirewallPoliciesOutputResponse.nextToken, paginationFunction: self.listThirdPartyFirewallFirewallPolicies(input:)) } @@ -184,10 +178,10 @@ extension ListThirdPartyFirewallFirewallPoliciesInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `listThirdPartyFirewallFirewallPoliciesPaginated` -/// to access the nested member `[FMSClientTypes.ThirdPartyFirewallFirewallPolicy]` -/// - Returns: `[FMSClientTypes.ThirdPartyFirewallFirewallPolicy]` extension PaginatorSequence where Input == ListThirdPartyFirewallFirewallPoliciesInput, Output == ListThirdPartyFirewallFirewallPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThirdPartyFirewallFirewallPoliciesPaginated` + /// to access the nested member `[FMSClientTypes.ThirdPartyFirewallFirewallPolicy]` + /// - Returns: `[FMSClientTypes.ThirdPartyFirewallFirewallPolicy]` public func thirdPartyFirewallFirewallPolicies() async throws -> [FMSClientTypes.ThirdPartyFirewallFirewallPolicy] { return try await self.asyncCompactMap { item in item.thirdPartyFirewallFirewallPolicies } } diff --git a/Sources/Services/AWSFSx/Paginators.swift b/Sources/Services/AWSFSx/Paginators.swift index bb8d89bcb33..a4a9ddb99eb 100644 --- a/Sources/Services/AWSFSx/Paginators.swift +++ b/Sources/Services/AWSFSx/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBackupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBackupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` extension FSxClient { + /// Paginate over `[DescribeBackupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBackupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` public func describeBackupsPaginated(input: DescribeBackupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBackupsInput.nextToken, outputKey: \DescribeBackupsOutputResponse.nextToken, paginationFunction: self.describeBackups(input:)) } @@ -26,16 +25,15 @@ extension DescribeBackupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeDataRepositoryAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataRepositoryAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataRepositoryAssociationsOutputResponse` extension FSxClient { + /// Paginate over `[DescribeDataRepositoryAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataRepositoryAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataRepositoryAssociationsOutputResponse` public func describeDataRepositoryAssociationsPaginated(input: DescribeDataRepositoryAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataRepositoryAssociationsInput.nextToken, outputKey: \DescribeDataRepositoryAssociationsOutputResponse.nextToken, paginationFunction: self.describeDataRepositoryAssociations(input:)) } @@ -50,16 +48,15 @@ extension DescribeDataRepositoryAssociationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeDataRepositoryTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataRepositoryTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataRepositoryTasksOutputResponse` extension FSxClient { + /// Paginate over `[DescribeDataRepositoryTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataRepositoryTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataRepositoryTasksOutputResponse` public func describeDataRepositoryTasksPaginated(input: DescribeDataRepositoryTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataRepositoryTasksInput.nextToken, outputKey: \DescribeDataRepositoryTasksOutputResponse.nextToken, paginationFunction: self.describeDataRepositoryTasks(input:)) } @@ -74,16 +71,15 @@ extension DescribeDataRepositoryTasksInput: ClientRuntime.PaginateToken { taskIds: self.taskIds )} } - -/// Paginate over `[DescribeFileCachesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFileCachesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFileCachesOutputResponse` extension FSxClient { + /// Paginate over `[DescribeFileCachesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFileCachesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFileCachesOutputResponse` public func describeFileCachesPaginated(input: DescribeFileCachesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFileCachesInput.nextToken, outputKey: \DescribeFileCachesOutputResponse.nextToken, paginationFunction: self.describeFileCaches(input:)) } @@ -97,16 +93,15 @@ extension DescribeFileCachesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFileSystemAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFileSystemAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemAliasesOutputResponse` extension FSxClient { + /// Paginate over `[DescribeFileSystemAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFileSystemAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemAliasesOutputResponse` public func describeFileSystemAliasesPaginated(input: DescribeFileSystemAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFileSystemAliasesInput.nextToken, outputKey: \DescribeFileSystemAliasesOutputResponse.nextToken, paginationFunction: self.describeFileSystemAliases(input:)) } @@ -121,16 +116,15 @@ extension DescribeFileSystemAliasesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFileSystemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFileSystemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemsOutputResponse` extension FSxClient { + /// Paginate over `[DescribeFileSystemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFileSystemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFileSystemsOutputResponse` public func describeFileSystemsPaginated(input: DescribeFileSystemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFileSystemsInput.nextToken, outputKey: \DescribeFileSystemsOutputResponse.nextToken, paginationFunction: self.describeFileSystems(input:)) } @@ -144,16 +138,15 @@ extension DescribeFileSystemsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` extension FSxClient { + /// Paginate over `[DescribeSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` public func describeSnapshotsPaginated(input: DescribeSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotsInput.nextToken, outputKey: \DescribeSnapshotsOutputResponse.nextToken, paginationFunction: self.describeSnapshots(input:)) } @@ -168,16 +161,15 @@ extension DescribeSnapshotsInput: ClientRuntime.PaginateToken { snapshotIds: self.snapshotIds )} } - -/// Paginate over `[DescribeStorageVirtualMachinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStorageVirtualMachinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStorageVirtualMachinesOutputResponse` extension FSxClient { + /// Paginate over `[DescribeStorageVirtualMachinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStorageVirtualMachinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStorageVirtualMachinesOutputResponse` public func describeStorageVirtualMachinesPaginated(input: DescribeStorageVirtualMachinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStorageVirtualMachinesInput.nextToken, outputKey: \DescribeStorageVirtualMachinesOutputResponse.nextToken, paginationFunction: self.describeStorageVirtualMachines(input:)) } @@ -193,24 +185,23 @@ extension DescribeStorageVirtualMachinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStorageVirtualMachinesPaginated` -/// to access the nested member `[FSxClientTypes.StorageVirtualMachine]` -/// - Returns: `[FSxClientTypes.StorageVirtualMachine]` extension PaginatorSequence where Input == DescribeStorageVirtualMachinesInput, Output == DescribeStorageVirtualMachinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStorageVirtualMachinesPaginated` + /// to access the nested member `[FSxClientTypes.StorageVirtualMachine]` + /// - Returns: `[FSxClientTypes.StorageVirtualMachine]` public func storageVirtualMachines() async throws -> [FSxClientTypes.StorageVirtualMachine] { return try await self.asyncCompactMap { item in item.storageVirtualMachines } } } - -/// Paginate over `[DescribeVolumesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVolumesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesOutputResponse` extension FSxClient { + /// Paginate over `[DescribeVolumesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVolumesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVolumesOutputResponse` public func describeVolumesPaginated(input: DescribeVolumesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVolumesInput.nextToken, outputKey: \DescribeVolumesOutputResponse.nextToken, paginationFunction: self.describeVolumes(input:)) } @@ -226,24 +217,23 @@ extension DescribeVolumesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVolumesPaginated` -/// to access the nested member `[FSxClientTypes.Volume]` -/// - Returns: `[FSxClientTypes.Volume]` extension PaginatorSequence where Input == DescribeVolumesInput, Output == DescribeVolumesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVolumesPaginated` + /// to access the nested member `[FSxClientTypes.Volume]` + /// - Returns: `[FSxClientTypes.Volume]` public func volumes() async throws -> [FSxClientTypes.Volume] { return try await self.asyncCompactMap { item in item.volumes } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension FSxClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } diff --git a/Sources/Services/AWSFinspacedata/Paginators.swift b/Sources/Services/AWSFinspacedata/Paginators.swift index eeab6e092a6..77691c18a10 100644 --- a/Sources/Services/AWSFinspacedata/Paginators.swift +++ b/Sources/Services/AWSFinspacedata/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChangesetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChangesetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChangesetsOutputResponse` extension FinspacedataClient { + /// Paginate over `[ListChangesetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChangesetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChangesetsOutputResponse` public func listChangesetsPaginated(input: ListChangesetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChangesetsInput.nextToken, outputKey: \ListChangesetsOutputResponse.nextToken, paginationFunction: self.listChangesets(input:)) } @@ -26,24 +25,23 @@ extension ListChangesetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listChangesetsPaginated` -/// to access the nested member `[FinspacedataClientTypes.ChangesetSummary]` -/// - Returns: `[FinspacedataClientTypes.ChangesetSummary]` extension PaginatorSequence where Input == ListChangesetsInput, Output == ListChangesetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listChangesetsPaginated` + /// to access the nested member `[FinspacedataClientTypes.ChangesetSummary]` + /// - Returns: `[FinspacedataClientTypes.ChangesetSummary]` public func changesets() async throws -> [FinspacedataClientTypes.ChangesetSummary] { return try await self.asyncCompactMap { item in item.changesets } } } - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension FinspacedataClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -57,24 +55,23 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` -/// to access the nested member `[FinspacedataClientTypes.Dataset]` -/// - Returns: `[FinspacedataClientTypes.Dataset]` extension PaginatorSequence where Input == ListDatasetsInput, Output == ListDatasetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` + /// to access the nested member `[FinspacedataClientTypes.Dataset]` + /// - Returns: `[FinspacedataClientTypes.Dataset]` public func datasets() async throws -> [FinspacedataClientTypes.Dataset] { return try await self.asyncCompactMap { item in item.datasets } } } - -/// Paginate over `[ListDataViewsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataViewsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataViewsOutputResponse` extension FinspacedataClient { + /// Paginate over `[ListDataViewsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataViewsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataViewsOutputResponse` public func listDataViewsPaginated(input: ListDataViewsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataViewsInput.nextToken, outputKey: \ListDataViewsOutputResponse.nextToken, paginationFunction: self.listDataViews(input:)) } @@ -89,24 +86,23 @@ extension ListDataViewsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataViewsPaginated` -/// to access the nested member `[FinspacedataClientTypes.DataViewSummary]` -/// - Returns: `[FinspacedataClientTypes.DataViewSummary]` extension PaginatorSequence where Input == ListDataViewsInput, Output == ListDataViewsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataViewsPaginated` + /// to access the nested member `[FinspacedataClientTypes.DataViewSummary]` + /// - Returns: `[FinspacedataClientTypes.DataViewSummary]` public func dataViews() async throws -> [FinspacedataClientTypes.DataViewSummary] { return try await self.asyncCompactMap { item in item.dataViews } } } - -/// Paginate over `[ListPermissionGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionGroupsOutputResponse` extension FinspacedataClient { + /// Paginate over `[ListPermissionGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionGroupsOutputResponse` public func listPermissionGroupsPaginated(input: ListPermissionGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionGroupsInput.nextToken, outputKey: \ListPermissionGroupsOutputResponse.nextToken, paginationFunction: self.listPermissionGroups(input:)) } @@ -120,24 +116,23 @@ extension ListPermissionGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPermissionGroupsPaginated` -/// to access the nested member `[FinspacedataClientTypes.PermissionGroup]` -/// - Returns: `[FinspacedataClientTypes.PermissionGroup]` extension PaginatorSequence where Input == ListPermissionGroupsInput, Output == ListPermissionGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPermissionGroupsPaginated` + /// to access the nested member `[FinspacedataClientTypes.PermissionGroup]` + /// - Returns: `[FinspacedataClientTypes.PermissionGroup]` public func permissionGroups() async throws -> [FinspacedataClientTypes.PermissionGroup] { return try await self.asyncCompactMap { item in item.permissionGroups } } } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension FinspacedataClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.nextToken, outputKey: \ListUsersOutputResponse.nextToken, paginationFunction: self.listUsers(input:)) } @@ -151,10 +146,10 @@ extension ListUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` -/// to access the nested member `[FinspacedataClientTypes.User]` -/// - Returns: `[FinspacedataClientTypes.User]` extension PaginatorSequence where Input == ListUsersInput, Output == ListUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` + /// to access the nested member `[FinspacedataClientTypes.User]` + /// - Returns: `[FinspacedataClientTypes.User]` public func users() async throws -> [FinspacedataClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } diff --git a/Sources/Services/AWSFis/Paginators.swift b/Sources/Services/AWSFis/Paginators.swift index 0fff8311dcf..c1baa22d0b6 100644 --- a/Sources/Services/AWSFis/Paginators.swift +++ b/Sources/Services/AWSFis/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActionsOutputResponse` extension FisClient { + /// Paginate over `[ListActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActionsOutputResponse` public func listActionsPaginated(input: ListActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActionsInput.nextToken, outputKey: \ListActionsOutputResponse.nextToken, paginationFunction: self.listActions(input:)) } @@ -24,16 +23,15 @@ extension ListActionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExperimentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExperimentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExperimentsOutputResponse` extension FisClient { + /// Paginate over `[ListExperimentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExperimentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExperimentsOutputResponse` public func listExperimentsPaginated(input: ListExperimentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExperimentsInput.nextToken, outputKey: \ListExperimentsOutputResponse.nextToken, paginationFunction: self.listExperiments(input:)) } @@ -46,16 +44,15 @@ extension ListExperimentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExperimentTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExperimentTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExperimentTemplatesOutputResponse` extension FisClient { + /// Paginate over `[ListExperimentTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExperimentTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExperimentTemplatesOutputResponse` public func listExperimentTemplatesPaginated(input: ListExperimentTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExperimentTemplatesInput.nextToken, outputKey: \ListExperimentTemplatesOutputResponse.nextToken, paginationFunction: self.listExperimentTemplates(input:)) } @@ -68,16 +65,15 @@ extension ListExperimentTemplatesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTargetResourceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetResourceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetResourceTypesOutputResponse` extension FisClient { + /// Paginate over `[ListTargetResourceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetResourceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetResourceTypesOutputResponse` public func listTargetResourceTypesPaginated(input: ListTargetResourceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetResourceTypesInput.nextToken, outputKey: \ListTargetResourceTypesOutputResponse.nextToken, paginationFunction: self.listTargetResourceTypes(input:)) } diff --git a/Sources/Services/AWSForecast/Paginators.swift b/Sources/Services/AWSForecast/Paginators.swift index 762b235bf1b..c0fa64a8d61 100644 --- a/Sources/Services/AWSForecast/Paginators.swift +++ b/Sources/Services/AWSForecast/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDatasetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetGroupsOutputResponse` extension ForecastClient { + /// Paginate over `[ListDatasetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetGroupsOutputResponse` public func listDatasetGroupsPaginated(input: ListDatasetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetGroupsInput.nextToken, outputKey: \ListDatasetGroupsOutputResponse.nextToken, paginationFunction: self.listDatasetGroups(input:)) } @@ -25,24 +24,23 @@ extension ListDatasetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetGroupsPaginated` -/// to access the nested member `[ForecastClientTypes.DatasetGroupSummary]` -/// - Returns: `[ForecastClientTypes.DatasetGroupSummary]` extension PaginatorSequence where Input == ListDatasetGroupsInput, Output == ListDatasetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetGroupsPaginated` + /// to access the nested member `[ForecastClientTypes.DatasetGroupSummary]` + /// - Returns: `[ForecastClientTypes.DatasetGroupSummary]` public func datasetGroups() async throws -> [ForecastClientTypes.DatasetGroupSummary] { return try await self.asyncCompactMap { item in item.datasetGroups } } } - -/// Paginate over `[ListDatasetImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetImportJobsOutputResponse` extension ForecastClient { + /// Paginate over `[ListDatasetImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetImportJobsOutputResponse` public func listDatasetImportJobsPaginated(input: ListDatasetImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetImportJobsInput.nextToken, outputKey: \ListDatasetImportJobsOutputResponse.nextToken, paginationFunction: self.listDatasetImportJobs(input:)) } @@ -57,24 +55,23 @@ extension ListDatasetImportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetImportJobsPaginated` -/// to access the nested member `[ForecastClientTypes.DatasetImportJobSummary]` -/// - Returns: `[ForecastClientTypes.DatasetImportJobSummary]` extension PaginatorSequence where Input == ListDatasetImportJobsInput, Output == ListDatasetImportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetImportJobsPaginated` + /// to access the nested member `[ForecastClientTypes.DatasetImportJobSummary]` + /// - Returns: `[ForecastClientTypes.DatasetImportJobSummary]` public func datasetImportJobs() async throws -> [ForecastClientTypes.DatasetImportJobSummary] { return try await self.asyncCompactMap { item in item.datasetImportJobs } } } - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension ForecastClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -88,24 +85,23 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` -/// to access the nested member `[ForecastClientTypes.DatasetSummary]` -/// - Returns: `[ForecastClientTypes.DatasetSummary]` extension PaginatorSequence where Input == ListDatasetsInput, Output == ListDatasetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` + /// to access the nested member `[ForecastClientTypes.DatasetSummary]` + /// - Returns: `[ForecastClientTypes.DatasetSummary]` public func datasets() async throws -> [ForecastClientTypes.DatasetSummary] { return try await self.asyncCompactMap { item in item.datasets } } } - -/// Paginate over `[ListExplainabilitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExplainabilitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExplainabilitiesOutputResponse` extension ForecastClient { + /// Paginate over `[ListExplainabilitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExplainabilitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExplainabilitiesOutputResponse` public func listExplainabilitiesPaginated(input: ListExplainabilitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExplainabilitiesInput.nextToken, outputKey: \ListExplainabilitiesOutputResponse.nextToken, paginationFunction: self.listExplainabilities(input:)) } @@ -120,24 +116,23 @@ extension ListExplainabilitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExplainabilitiesPaginated` -/// to access the nested member `[ForecastClientTypes.ExplainabilitySummary]` -/// - Returns: `[ForecastClientTypes.ExplainabilitySummary]` extension PaginatorSequence where Input == ListExplainabilitiesInput, Output == ListExplainabilitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExplainabilitiesPaginated` + /// to access the nested member `[ForecastClientTypes.ExplainabilitySummary]` + /// - Returns: `[ForecastClientTypes.ExplainabilitySummary]` public func explainabilities() async throws -> [ForecastClientTypes.ExplainabilitySummary] { return try await self.asyncCompactMap { item in item.explainabilities } } } - -/// Paginate over `[ListExplainabilityExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExplainabilityExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExplainabilityExportsOutputResponse` extension ForecastClient { + /// Paginate over `[ListExplainabilityExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExplainabilityExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExplainabilityExportsOutputResponse` public func listExplainabilityExportsPaginated(input: ListExplainabilityExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExplainabilityExportsInput.nextToken, outputKey: \ListExplainabilityExportsOutputResponse.nextToken, paginationFunction: self.listExplainabilityExports(input:)) } @@ -152,24 +147,23 @@ extension ListExplainabilityExportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExplainabilityExportsPaginated` -/// to access the nested member `[ForecastClientTypes.ExplainabilityExportSummary]` -/// - Returns: `[ForecastClientTypes.ExplainabilityExportSummary]` extension PaginatorSequence where Input == ListExplainabilityExportsInput, Output == ListExplainabilityExportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExplainabilityExportsPaginated` + /// to access the nested member `[ForecastClientTypes.ExplainabilityExportSummary]` + /// - Returns: `[ForecastClientTypes.ExplainabilityExportSummary]` public func explainabilityExports() async throws -> [ForecastClientTypes.ExplainabilityExportSummary] { return try await self.asyncCompactMap { item in item.explainabilityExports } } } - -/// Paginate over `[ListForecastExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListForecastExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListForecastExportJobsOutputResponse` extension ForecastClient { + /// Paginate over `[ListForecastExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListForecastExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListForecastExportJobsOutputResponse` public func listForecastExportJobsPaginated(input: ListForecastExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListForecastExportJobsInput.nextToken, outputKey: \ListForecastExportJobsOutputResponse.nextToken, paginationFunction: self.listForecastExportJobs(input:)) } @@ -184,24 +178,23 @@ extension ListForecastExportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listForecastExportJobsPaginated` -/// to access the nested member `[ForecastClientTypes.ForecastExportJobSummary]` -/// - Returns: `[ForecastClientTypes.ForecastExportJobSummary]` extension PaginatorSequence where Input == ListForecastExportJobsInput, Output == ListForecastExportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listForecastExportJobsPaginated` + /// to access the nested member `[ForecastClientTypes.ForecastExportJobSummary]` + /// - Returns: `[ForecastClientTypes.ForecastExportJobSummary]` public func forecastExportJobs() async throws -> [ForecastClientTypes.ForecastExportJobSummary] { return try await self.asyncCompactMap { item in item.forecastExportJobs } } } - -/// Paginate over `[ListForecastsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListForecastsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListForecastsOutputResponse` extension ForecastClient { + /// Paginate over `[ListForecastsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListForecastsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListForecastsOutputResponse` public func listForecastsPaginated(input: ListForecastsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListForecastsInput.nextToken, outputKey: \ListForecastsOutputResponse.nextToken, paginationFunction: self.listForecasts(input:)) } @@ -216,24 +209,23 @@ extension ListForecastsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listForecastsPaginated` -/// to access the nested member `[ForecastClientTypes.ForecastSummary]` -/// - Returns: `[ForecastClientTypes.ForecastSummary]` extension PaginatorSequence where Input == ListForecastsInput, Output == ListForecastsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listForecastsPaginated` + /// to access the nested member `[ForecastClientTypes.ForecastSummary]` + /// - Returns: `[ForecastClientTypes.ForecastSummary]` public func forecasts() async throws -> [ForecastClientTypes.ForecastSummary] { return try await self.asyncCompactMap { item in item.forecasts } } } - -/// Paginate over `[ListMonitorEvaluationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitorEvaluationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitorEvaluationsOutputResponse` extension ForecastClient { + /// Paginate over `[ListMonitorEvaluationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitorEvaluationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitorEvaluationsOutputResponse` public func listMonitorEvaluationsPaginated(input: ListMonitorEvaluationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitorEvaluationsInput.nextToken, outputKey: \ListMonitorEvaluationsOutputResponse.nextToken, paginationFunction: self.listMonitorEvaluations(input:)) } @@ -249,24 +241,23 @@ extension ListMonitorEvaluationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitorEvaluationsPaginated` -/// to access the nested member `[ForecastClientTypes.PredictorMonitorEvaluation]` -/// - Returns: `[ForecastClientTypes.PredictorMonitorEvaluation]` extension PaginatorSequence where Input == ListMonitorEvaluationsInput, Output == ListMonitorEvaluationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitorEvaluationsPaginated` + /// to access the nested member `[ForecastClientTypes.PredictorMonitorEvaluation]` + /// - Returns: `[ForecastClientTypes.PredictorMonitorEvaluation]` public func predictorMonitorEvaluations() async throws -> [ForecastClientTypes.PredictorMonitorEvaluation] { return try await self.asyncCompactMap { item in item.predictorMonitorEvaluations } } } - -/// Paginate over `[ListMonitorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitorsOutputResponse` extension ForecastClient { + /// Paginate over `[ListMonitorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitorsOutputResponse` public func listMonitorsPaginated(input: ListMonitorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitorsInput.nextToken, outputKey: \ListMonitorsOutputResponse.nextToken, paginationFunction: self.listMonitors(input:)) } @@ -281,24 +272,23 @@ extension ListMonitorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitorsPaginated` -/// to access the nested member `[ForecastClientTypes.MonitorSummary]` -/// - Returns: `[ForecastClientTypes.MonitorSummary]` extension PaginatorSequence where Input == ListMonitorsInput, Output == ListMonitorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitorsPaginated` + /// to access the nested member `[ForecastClientTypes.MonitorSummary]` + /// - Returns: `[ForecastClientTypes.MonitorSummary]` public func monitors() async throws -> [ForecastClientTypes.MonitorSummary] { return try await self.asyncCompactMap { item in item.monitors } } } - -/// Paginate over `[ListPredictorBacktestExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPredictorBacktestExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPredictorBacktestExportJobsOutputResponse` extension ForecastClient { + /// Paginate over `[ListPredictorBacktestExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPredictorBacktestExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPredictorBacktestExportJobsOutputResponse` public func listPredictorBacktestExportJobsPaginated(input: ListPredictorBacktestExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPredictorBacktestExportJobsInput.nextToken, outputKey: \ListPredictorBacktestExportJobsOutputResponse.nextToken, paginationFunction: self.listPredictorBacktestExportJobs(input:)) } @@ -313,24 +303,23 @@ extension ListPredictorBacktestExportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPredictorBacktestExportJobsPaginated` -/// to access the nested member `[ForecastClientTypes.PredictorBacktestExportJobSummary]` -/// - Returns: `[ForecastClientTypes.PredictorBacktestExportJobSummary]` extension PaginatorSequence where Input == ListPredictorBacktestExportJobsInput, Output == ListPredictorBacktestExportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPredictorBacktestExportJobsPaginated` + /// to access the nested member `[ForecastClientTypes.PredictorBacktestExportJobSummary]` + /// - Returns: `[ForecastClientTypes.PredictorBacktestExportJobSummary]` public func predictorBacktestExportJobs() async throws -> [ForecastClientTypes.PredictorBacktestExportJobSummary] { return try await self.asyncCompactMap { item in item.predictorBacktestExportJobs } } } - -/// Paginate over `[ListPredictorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPredictorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPredictorsOutputResponse` extension ForecastClient { + /// Paginate over `[ListPredictorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPredictorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPredictorsOutputResponse` public func listPredictorsPaginated(input: ListPredictorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPredictorsInput.nextToken, outputKey: \ListPredictorsOutputResponse.nextToken, paginationFunction: self.listPredictors(input:)) } @@ -345,24 +334,23 @@ extension ListPredictorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPredictorsPaginated` -/// to access the nested member `[ForecastClientTypes.PredictorSummary]` -/// - Returns: `[ForecastClientTypes.PredictorSummary]` extension PaginatorSequence where Input == ListPredictorsInput, Output == ListPredictorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPredictorsPaginated` + /// to access the nested member `[ForecastClientTypes.PredictorSummary]` + /// - Returns: `[ForecastClientTypes.PredictorSummary]` public func predictors() async throws -> [ForecastClientTypes.PredictorSummary] { return try await self.asyncCompactMap { item in item.predictors } } } - -/// Paginate over `[ListWhatIfAnalysesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWhatIfAnalysesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfAnalysesOutputResponse` extension ForecastClient { + /// Paginate over `[ListWhatIfAnalysesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWhatIfAnalysesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfAnalysesOutputResponse` public func listWhatIfAnalysesPaginated(input: ListWhatIfAnalysesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWhatIfAnalysesInput.nextToken, outputKey: \ListWhatIfAnalysesOutputResponse.nextToken, paginationFunction: self.listWhatIfAnalyses(input:)) } @@ -377,24 +365,23 @@ extension ListWhatIfAnalysesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWhatIfAnalysesPaginated` -/// to access the nested member `[ForecastClientTypes.WhatIfAnalysisSummary]` -/// - Returns: `[ForecastClientTypes.WhatIfAnalysisSummary]` extension PaginatorSequence where Input == ListWhatIfAnalysesInput, Output == ListWhatIfAnalysesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWhatIfAnalysesPaginated` + /// to access the nested member `[ForecastClientTypes.WhatIfAnalysisSummary]` + /// - Returns: `[ForecastClientTypes.WhatIfAnalysisSummary]` public func whatIfAnalyses() async throws -> [ForecastClientTypes.WhatIfAnalysisSummary] { return try await self.asyncCompactMap { item in item.whatIfAnalyses } } } - -/// Paginate over `[ListWhatIfForecastExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWhatIfForecastExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfForecastExportsOutputResponse` extension ForecastClient { + /// Paginate over `[ListWhatIfForecastExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWhatIfForecastExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfForecastExportsOutputResponse` public func listWhatIfForecastExportsPaginated(input: ListWhatIfForecastExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWhatIfForecastExportsInput.nextToken, outputKey: \ListWhatIfForecastExportsOutputResponse.nextToken, paginationFunction: self.listWhatIfForecastExports(input:)) } @@ -409,24 +396,23 @@ extension ListWhatIfForecastExportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWhatIfForecastExportsPaginated` -/// to access the nested member `[ForecastClientTypes.WhatIfForecastExportSummary]` -/// - Returns: `[ForecastClientTypes.WhatIfForecastExportSummary]` extension PaginatorSequence where Input == ListWhatIfForecastExportsInput, Output == ListWhatIfForecastExportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWhatIfForecastExportsPaginated` + /// to access the nested member `[ForecastClientTypes.WhatIfForecastExportSummary]` + /// - Returns: `[ForecastClientTypes.WhatIfForecastExportSummary]` public func whatIfForecastExports() async throws -> [ForecastClientTypes.WhatIfForecastExportSummary] { return try await self.asyncCompactMap { item in item.whatIfForecastExports } } } - -/// Paginate over `[ListWhatIfForecastsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWhatIfForecastsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfForecastsOutputResponse` extension ForecastClient { + /// Paginate over `[ListWhatIfForecastsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWhatIfForecastsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWhatIfForecastsOutputResponse` public func listWhatIfForecastsPaginated(input: ListWhatIfForecastsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWhatIfForecastsInput.nextToken, outputKey: \ListWhatIfForecastsOutputResponse.nextToken, paginationFunction: self.listWhatIfForecasts(input:)) } @@ -441,10 +427,10 @@ extension ListWhatIfForecastsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWhatIfForecastsPaginated` -/// to access the nested member `[ForecastClientTypes.WhatIfForecastSummary]` -/// - Returns: `[ForecastClientTypes.WhatIfForecastSummary]` extension PaginatorSequence where Input == ListWhatIfForecastsInput, Output == ListWhatIfForecastsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWhatIfForecastsPaginated` + /// to access the nested member `[ForecastClientTypes.WhatIfForecastSummary]` + /// - Returns: `[ForecastClientTypes.WhatIfForecastSummary]` public func whatIfForecasts() async throws -> [ForecastClientTypes.WhatIfForecastSummary] { return try await self.asyncCompactMap { item in item.whatIfForecasts } } diff --git a/Sources/Services/AWSFraudDetector/Paginators.swift b/Sources/Services/AWSFraudDetector/Paginators.swift index cac5dcab720..7b251726dab 100644 --- a/Sources/Services/AWSFraudDetector/Paginators.swift +++ b/Sources/Services/AWSFraudDetector/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeModelVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeModelVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeModelVersionsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[DescribeModelVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeModelVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeModelVersionsOutputResponse` public func describeModelVersionsPaginated(input: DescribeModelVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeModelVersionsInput.nextToken, outputKey: \DescribeModelVersionsOutputResponse.nextToken, paginationFunction: self.describeModelVersions(input:)) } @@ -27,16 +26,15 @@ extension DescribeModelVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBatchImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBatchImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBatchImportJobsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetBatchImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBatchImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBatchImportJobsOutputResponse` public func getBatchImportJobsPaginated(input: GetBatchImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBatchImportJobsInput.nextToken, outputKey: \GetBatchImportJobsOutputResponse.nextToken, paginationFunction: self.getBatchImportJobs(input:)) } @@ -50,16 +48,15 @@ extension GetBatchImportJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBatchPredictionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBatchPredictionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBatchPredictionJobsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetBatchPredictionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBatchPredictionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBatchPredictionJobsOutputResponse` public func getBatchPredictionJobsPaginated(input: GetBatchPredictionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBatchPredictionJobsInput.nextToken, outputKey: \GetBatchPredictionJobsOutputResponse.nextToken, paginationFunction: self.getBatchPredictionJobs(input:)) } @@ -73,16 +70,15 @@ extension GetBatchPredictionJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetDetectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDetectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDetectorsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetDetectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDetectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDetectorsOutputResponse` public func getDetectorsPaginated(input: GetDetectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDetectorsInput.nextToken, outputKey: \GetDetectorsOutputResponse.nextToken, paginationFunction: self.getDetectors(input:)) } @@ -96,16 +92,15 @@ extension GetDetectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetEntityTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEntityTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEntityTypesOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetEntityTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEntityTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEntityTypesOutputResponse` public func getEntityTypesPaginated(input: GetEntityTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEntityTypesInput.nextToken, outputKey: \GetEntityTypesOutputResponse.nextToken, paginationFunction: self.getEntityTypes(input:)) } @@ -119,16 +114,15 @@ extension GetEntityTypesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetEventTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEventTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEventTypesOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetEventTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEventTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEventTypesOutputResponse` public func getEventTypesPaginated(input: GetEventTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEventTypesInput.nextToken, outputKey: \GetEventTypesOutputResponse.nextToken, paginationFunction: self.getEventTypes(input:)) } @@ -142,16 +136,15 @@ extension GetEventTypesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetExternalModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetExternalModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetExternalModelsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetExternalModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetExternalModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetExternalModelsOutputResponse` public func getExternalModelsPaginated(input: GetExternalModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetExternalModelsInput.nextToken, outputKey: \GetExternalModelsOutputResponse.nextToken, paginationFunction: self.getExternalModels(input:)) } @@ -165,16 +158,15 @@ extension GetExternalModelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetLabelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLabelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLabelsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetLabelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLabelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLabelsOutputResponse` public func getLabelsPaginated(input: GetLabelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLabelsInput.nextToken, outputKey: \GetLabelsOutputResponse.nextToken, paginationFunction: self.getLabels(input:)) } @@ -188,16 +180,15 @@ extension GetLabelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetModelsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetModelsOutputResponse` public func getModelsPaginated(input: GetModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetModelsInput.nextToken, outputKey: \GetModelsOutputResponse.nextToken, paginationFunction: self.getModels(input:)) } @@ -212,16 +203,15 @@ extension GetModelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetOutcomesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOutcomesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOutcomesOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetOutcomesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOutcomesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOutcomesOutputResponse` public func getOutcomesPaginated(input: GetOutcomesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOutcomesInput.nextToken, outputKey: \GetOutcomesOutputResponse.nextToken, paginationFunction: self.getOutcomes(input:)) } @@ -235,16 +225,15 @@ extension GetOutcomesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetRulesOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetRulesOutputResponse` public func getRulesPaginated(input: GetRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetRulesInput.nextToken, outputKey: \GetRulesOutputResponse.nextToken, paginationFunction: self.getRules(input:)) } @@ -260,16 +249,15 @@ extension GetRulesInput: ClientRuntime.PaginateToken { ruleVersion: self.ruleVersion )} } - -/// Paginate over `[GetVariablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetVariablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetVariablesOutputResponse` extension FraudDetectorClient { + /// Paginate over `[GetVariablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetVariablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetVariablesOutputResponse` public func getVariablesPaginated(input: GetVariablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetVariablesInput.nextToken, outputKey: \GetVariablesOutputResponse.nextToken, paginationFunction: self.getVariables(input:)) } @@ -283,16 +271,15 @@ extension GetVariablesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEventPredictionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventPredictionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventPredictionsOutputResponse` extension FraudDetectorClient { + /// Paginate over `[ListEventPredictionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventPredictionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventPredictionsOutputResponse` public func listEventPredictionsPaginated(input: ListEventPredictionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventPredictionsInput.nextToken, outputKey: \ListEventPredictionsOutputResponse.nextToken, paginationFunction: self.listEventPredictions(input:)) } @@ -310,16 +297,15 @@ extension ListEventPredictionsInput: ClientRuntime.PaginateToken { predictionTimeRange: self.predictionTimeRange )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension FraudDetectorClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } diff --git a/Sources/Services/AWSGameLift/Paginators.swift b/Sources/Services/AWSGameLift/Paginators.swift index 79394c30e4f..dae431ef398 100644 --- a/Sources/Services/AWSGameLift/Paginators.swift +++ b/Sources/Services/AWSGameLift/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeFleetAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAttributesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeFleetAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetAttributesOutputResponse` public func describeFleetAttributesPaginated(input: DescribeFleetAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetAttributesInput.nextToken, outputKey: \DescribeFleetAttributesOutputResponse.nextToken, paginationFunction: self.describeFleetAttributes(input:)) } @@ -26,24 +25,23 @@ extension DescribeFleetAttributesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFleetAttributesPaginated` -/// to access the nested member `[GameLiftClientTypes.FleetAttributes]` -/// - Returns: `[GameLiftClientTypes.FleetAttributes]` extension PaginatorSequence where Input == DescribeFleetAttributesInput, Output == DescribeFleetAttributesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFleetAttributesPaginated` + /// to access the nested member `[GameLiftClientTypes.FleetAttributes]` + /// - Returns: `[GameLiftClientTypes.FleetAttributes]` public func fleetAttributes() async throws -> [GameLiftClientTypes.FleetAttributes] { return try await self.asyncCompactMap { item in item.fleetAttributes } } } - -/// Paginate over `[DescribeFleetCapacityOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetCapacityInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetCapacityOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeFleetCapacityOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetCapacityInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetCapacityOutputResponse` public func describeFleetCapacityPaginated(input: DescribeFleetCapacityInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetCapacityInput.nextToken, outputKey: \DescribeFleetCapacityOutputResponse.nextToken, paginationFunction: self.describeFleetCapacity(input:)) } @@ -58,24 +56,23 @@ extension DescribeFleetCapacityInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFleetCapacityPaginated` -/// to access the nested member `[GameLiftClientTypes.FleetCapacity]` -/// - Returns: `[GameLiftClientTypes.FleetCapacity]` extension PaginatorSequence where Input == DescribeFleetCapacityInput, Output == DescribeFleetCapacityOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFleetCapacityPaginated` + /// to access the nested member `[GameLiftClientTypes.FleetCapacity]` + /// - Returns: `[GameLiftClientTypes.FleetCapacity]` public func fleetCapacity() async throws -> [GameLiftClientTypes.FleetCapacity] { return try await self.asyncCompactMap { item in item.fleetCapacity } } } - -/// Paginate over `[DescribeFleetEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetEventsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeFleetEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetEventsOutputResponse` public func describeFleetEventsPaginated(input: DescribeFleetEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetEventsInput.nextToken, outputKey: \DescribeFleetEventsOutputResponse.nextToken, paginationFunction: self.describeFleetEvents(input:)) } @@ -92,24 +89,23 @@ extension DescribeFleetEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFleetEventsPaginated` -/// to access the nested member `[GameLiftClientTypes.Event]` -/// - Returns: `[GameLiftClientTypes.Event]` extension PaginatorSequence where Input == DescribeFleetEventsInput, Output == DescribeFleetEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFleetEventsPaginated` + /// to access the nested member `[GameLiftClientTypes.Event]` + /// - Returns: `[GameLiftClientTypes.Event]` public func events() async throws -> [GameLiftClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeFleetLocationAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetLocationAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetLocationAttributesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeFleetLocationAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetLocationAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetLocationAttributesOutputResponse` public func describeFleetLocationAttributesPaginated(input: DescribeFleetLocationAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetLocationAttributesInput.nextToken, outputKey: \DescribeFleetLocationAttributesOutputResponse.nextToken, paginationFunction: self.describeFleetLocationAttributes(input:)) } @@ -124,16 +120,15 @@ extension DescribeFleetLocationAttributesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeFleetUtilizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFleetUtilizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetUtilizationOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeFleetUtilizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFleetUtilizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFleetUtilizationOutputResponse` public func describeFleetUtilizationPaginated(input: DescribeFleetUtilizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFleetUtilizationInput.nextToken, outputKey: \DescribeFleetUtilizationOutputResponse.nextToken, paginationFunction: self.describeFleetUtilization(input:)) } @@ -148,24 +143,23 @@ extension DescribeFleetUtilizationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeFleetUtilizationPaginated` -/// to access the nested member `[GameLiftClientTypes.FleetUtilization]` -/// - Returns: `[GameLiftClientTypes.FleetUtilization]` extension PaginatorSequence where Input == DescribeFleetUtilizationInput, Output == DescribeFleetUtilizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeFleetUtilizationPaginated` + /// to access the nested member `[GameLiftClientTypes.FleetUtilization]` + /// - Returns: `[GameLiftClientTypes.FleetUtilization]` public func fleetUtilization() async throws -> [GameLiftClientTypes.FleetUtilization] { return try await self.asyncCompactMap { item in item.fleetUtilization } } } - -/// Paginate over `[DescribeGameServerInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGameServerInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGameServerInstancesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeGameServerInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGameServerInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGameServerInstancesOutputResponse` public func describeGameServerInstancesPaginated(input: DescribeGameServerInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGameServerInstancesInput.nextToken, outputKey: \DescribeGameServerInstancesOutputResponse.nextToken, paginationFunction: self.describeGameServerInstances(input:)) } @@ -181,24 +175,23 @@ extension DescribeGameServerInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGameServerInstancesPaginated` -/// to access the nested member `[GameLiftClientTypes.GameServerInstance]` -/// - Returns: `[GameLiftClientTypes.GameServerInstance]` extension PaginatorSequence where Input == DescribeGameServerInstancesInput, Output == DescribeGameServerInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGameServerInstancesPaginated` + /// to access the nested member `[GameLiftClientTypes.GameServerInstance]` + /// - Returns: `[GameLiftClientTypes.GameServerInstance]` public func gameServerInstances() async throws -> [GameLiftClientTypes.GameServerInstance] { return try await self.asyncCompactMap { item in item.gameServerInstances } } } - -/// Paginate over `[DescribeGameSessionDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGameSessionDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionDetailsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeGameSessionDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGameSessionDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionDetailsOutputResponse` public func describeGameSessionDetailsPaginated(input: DescribeGameSessionDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGameSessionDetailsInput.nextToken, outputKey: \DescribeGameSessionDetailsOutputResponse.nextToken, paginationFunction: self.describeGameSessionDetails(input:)) } @@ -217,24 +210,23 @@ extension DescribeGameSessionDetailsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGameSessionDetailsPaginated` -/// to access the nested member `[GameLiftClientTypes.GameSessionDetail]` -/// - Returns: `[GameLiftClientTypes.GameSessionDetail]` extension PaginatorSequence where Input == DescribeGameSessionDetailsInput, Output == DescribeGameSessionDetailsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGameSessionDetailsPaginated` + /// to access the nested member `[GameLiftClientTypes.GameSessionDetail]` + /// - Returns: `[GameLiftClientTypes.GameSessionDetail]` public func gameSessionDetails() async throws -> [GameLiftClientTypes.GameSessionDetail] { return try await self.asyncCompactMap { item in item.gameSessionDetails } } } - -/// Paginate over `[DescribeGameSessionQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGameSessionQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionQueuesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeGameSessionQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGameSessionQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionQueuesOutputResponse` public func describeGameSessionQueuesPaginated(input: DescribeGameSessionQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGameSessionQueuesInput.nextToken, outputKey: \DescribeGameSessionQueuesOutputResponse.nextToken, paginationFunction: self.describeGameSessionQueues(input:)) } @@ -249,24 +241,23 @@ extension DescribeGameSessionQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGameSessionQueuesPaginated` -/// to access the nested member `[GameLiftClientTypes.GameSessionQueue]` -/// - Returns: `[GameLiftClientTypes.GameSessionQueue]` extension PaginatorSequence where Input == DescribeGameSessionQueuesInput, Output == DescribeGameSessionQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGameSessionQueuesPaginated` + /// to access the nested member `[GameLiftClientTypes.GameSessionQueue]` + /// - Returns: `[GameLiftClientTypes.GameSessionQueue]` public func gameSessionQueues() async throws -> [GameLiftClientTypes.GameSessionQueue] { return try await self.asyncCompactMap { item in item.gameSessionQueues } } } - -/// Paginate over `[DescribeGameSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGameSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeGameSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGameSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGameSessionsOutputResponse` public func describeGameSessionsPaginated(input: DescribeGameSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGameSessionsInput.nextToken, outputKey: \DescribeGameSessionsOutputResponse.nextToken, paginationFunction: self.describeGameSessions(input:)) } @@ -285,24 +276,23 @@ extension DescribeGameSessionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGameSessionsPaginated` -/// to access the nested member `[GameLiftClientTypes.GameSession]` -/// - Returns: `[GameLiftClientTypes.GameSession]` extension PaginatorSequence where Input == DescribeGameSessionsInput, Output == DescribeGameSessionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGameSessionsPaginated` + /// to access the nested member `[GameLiftClientTypes.GameSession]` + /// - Returns: `[GameLiftClientTypes.GameSession]` public func gameSessions() async throws -> [GameLiftClientTypes.GameSession] { return try await self.asyncCompactMap { item in item.gameSessions } } } - -/// Paginate over `[DescribeInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancesOutputResponse` public func describeInstancesPaginated(input: DescribeInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstancesInput.nextToken, outputKey: \DescribeInstancesOutputResponse.nextToken, paginationFunction: self.describeInstances(input:)) } @@ -319,24 +309,23 @@ extension DescribeInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstancesPaginated` -/// to access the nested member `[GameLiftClientTypes.Instance]` -/// - Returns: `[GameLiftClientTypes.Instance]` extension PaginatorSequence where Input == DescribeInstancesInput, Output == DescribeInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstancesPaginated` + /// to access the nested member `[GameLiftClientTypes.Instance]` + /// - Returns: `[GameLiftClientTypes.Instance]` public func instances() async throws -> [GameLiftClientTypes.Instance] { return try await self.asyncCompactMap { item in item.instances } } } - -/// Paginate over `[DescribeMatchmakingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMatchmakingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMatchmakingConfigurationsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeMatchmakingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMatchmakingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMatchmakingConfigurationsOutputResponse` public func describeMatchmakingConfigurationsPaginated(input: DescribeMatchmakingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMatchmakingConfigurationsInput.nextToken, outputKey: \DescribeMatchmakingConfigurationsOutputResponse.nextToken, paginationFunction: self.describeMatchmakingConfigurations(input:)) } @@ -352,24 +341,23 @@ extension DescribeMatchmakingConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMatchmakingConfigurationsPaginated` -/// to access the nested member `[GameLiftClientTypes.MatchmakingConfiguration]` -/// - Returns: `[GameLiftClientTypes.MatchmakingConfiguration]` extension PaginatorSequence where Input == DescribeMatchmakingConfigurationsInput, Output == DescribeMatchmakingConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMatchmakingConfigurationsPaginated` + /// to access the nested member `[GameLiftClientTypes.MatchmakingConfiguration]` + /// - Returns: `[GameLiftClientTypes.MatchmakingConfiguration]` public func configurations() async throws -> [GameLiftClientTypes.MatchmakingConfiguration] { return try await self.asyncCompactMap { item in item.configurations } } } - -/// Paginate over `[DescribeMatchmakingRuleSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMatchmakingRuleSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMatchmakingRuleSetsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeMatchmakingRuleSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMatchmakingRuleSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMatchmakingRuleSetsOutputResponse` public func describeMatchmakingRuleSetsPaginated(input: DescribeMatchmakingRuleSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMatchmakingRuleSetsInput.nextToken, outputKey: \DescribeMatchmakingRuleSetsOutputResponse.nextToken, paginationFunction: self.describeMatchmakingRuleSets(input:)) } @@ -384,24 +372,23 @@ extension DescribeMatchmakingRuleSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMatchmakingRuleSetsPaginated` -/// to access the nested member `[GameLiftClientTypes.MatchmakingRuleSet]` -/// - Returns: `[GameLiftClientTypes.MatchmakingRuleSet]` extension PaginatorSequence where Input == DescribeMatchmakingRuleSetsInput, Output == DescribeMatchmakingRuleSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMatchmakingRuleSetsPaginated` + /// to access the nested member `[GameLiftClientTypes.MatchmakingRuleSet]` + /// - Returns: `[GameLiftClientTypes.MatchmakingRuleSet]` public func ruleSets() async throws -> [GameLiftClientTypes.MatchmakingRuleSet] { return try await self.asyncCompactMap { item in item.ruleSets } } } - -/// Paginate over `[DescribePlayerSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePlayerSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePlayerSessionsOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribePlayerSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePlayerSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePlayerSessionsOutputResponse` public func describePlayerSessionsPaginated(input: DescribePlayerSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePlayerSessionsInput.nextToken, outputKey: \DescribePlayerSessionsOutputResponse.nextToken, paginationFunction: self.describePlayerSessions(input:)) } @@ -419,24 +406,23 @@ extension DescribePlayerSessionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePlayerSessionsPaginated` -/// to access the nested member `[GameLiftClientTypes.PlayerSession]` -/// - Returns: `[GameLiftClientTypes.PlayerSession]` extension PaginatorSequence where Input == DescribePlayerSessionsInput, Output == DescribePlayerSessionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePlayerSessionsPaginated` + /// to access the nested member `[GameLiftClientTypes.PlayerSession]` + /// - Returns: `[GameLiftClientTypes.PlayerSession]` public func playerSessions() async throws -> [GameLiftClientTypes.PlayerSession] { return try await self.asyncCompactMap { item in item.playerSessions } } } - -/// Paginate over `[DescribeScalingPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScalingPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingPoliciesOutputResponse` extension GameLiftClient { + /// Paginate over `[DescribeScalingPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScalingPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScalingPoliciesOutputResponse` public func describeScalingPoliciesPaginated(input: DescribeScalingPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScalingPoliciesInput.nextToken, outputKey: \DescribeScalingPoliciesOutputResponse.nextToken, paginationFunction: self.describeScalingPolicies(input:)) } @@ -453,24 +439,23 @@ extension DescribeScalingPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScalingPoliciesPaginated` -/// to access the nested member `[GameLiftClientTypes.ScalingPolicy]` -/// - Returns: `[GameLiftClientTypes.ScalingPolicy]` extension PaginatorSequence where Input == DescribeScalingPoliciesInput, Output == DescribeScalingPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScalingPoliciesPaginated` + /// to access the nested member `[GameLiftClientTypes.ScalingPolicy]` + /// - Returns: `[GameLiftClientTypes.ScalingPolicy]` public func scalingPolicies() async throws -> [GameLiftClientTypes.ScalingPolicy] { return try await self.asyncCompactMap { item in item.scalingPolicies } } } - -/// Paginate over `[ListAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` extension GameLiftClient { + /// Paginate over `[ListAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` public func listAliasesPaginated(input: ListAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAliasesInput.nextToken, outputKey: \ListAliasesOutputResponse.nextToken, paginationFunction: self.listAliases(input:)) } @@ -486,24 +471,23 @@ extension ListAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` -/// to access the nested member `[GameLiftClientTypes.Alias]` -/// - Returns: `[GameLiftClientTypes.Alias]` extension PaginatorSequence where Input == ListAliasesInput, Output == ListAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` + /// to access the nested member `[GameLiftClientTypes.Alias]` + /// - Returns: `[GameLiftClientTypes.Alias]` public func aliases() async throws -> [GameLiftClientTypes.Alias] { return try await self.asyncCompactMap { item in item.aliases } } } - -/// Paginate over `[ListBuildsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuildsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuildsOutputResponse` extension GameLiftClient { + /// Paginate over `[ListBuildsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuildsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuildsOutputResponse` public func listBuildsPaginated(input: ListBuildsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuildsInput.nextToken, outputKey: \ListBuildsOutputResponse.nextToken, paginationFunction: self.listBuilds(input:)) } @@ -518,24 +502,23 @@ extension ListBuildsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBuildsPaginated` -/// to access the nested member `[GameLiftClientTypes.Build]` -/// - Returns: `[GameLiftClientTypes.Build]` extension PaginatorSequence where Input == ListBuildsInput, Output == ListBuildsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBuildsPaginated` + /// to access the nested member `[GameLiftClientTypes.Build]` + /// - Returns: `[GameLiftClientTypes.Build]` public func builds() async throws -> [GameLiftClientTypes.Build] { return try await self.asyncCompactMap { item in item.builds } } } - -/// Paginate over `[ListComputeOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComputeInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComputeOutputResponse` extension GameLiftClient { + /// Paginate over `[ListComputeOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComputeInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComputeOutputResponse` public func listComputePaginated(input: ListComputeInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComputeInput.nextToken, outputKey: \ListComputeOutputResponse.nextToken, paginationFunction: self.listCompute(input:)) } @@ -551,24 +534,23 @@ extension ListComputeInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComputePaginated` -/// to access the nested member `[GameLiftClientTypes.Compute]` -/// - Returns: `[GameLiftClientTypes.Compute]` extension PaginatorSequence where Input == ListComputeInput, Output == ListComputeOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComputePaginated` + /// to access the nested member `[GameLiftClientTypes.Compute]` + /// - Returns: `[GameLiftClientTypes.Compute]` public func computeList() async throws -> [GameLiftClientTypes.Compute] { return try await self.asyncCompactMap { item in item.computeList } } } - -/// Paginate over `[ListFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` extension GameLiftClient { + /// Paginate over `[ListFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` public func listFleetsPaginated(input: ListFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFleetsInput.nextToken, outputKey: \ListFleetsOutputResponse.nextToken, paginationFunction: self.listFleets(input:)) } @@ -584,24 +566,23 @@ extension ListFleetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFleetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFleetsInput, Output == ListFleetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFleetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func fleetIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.fleetIds } } } - -/// Paginate over `[ListGameServerGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGameServerGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGameServerGroupsOutputResponse` extension GameLiftClient { + /// Paginate over `[ListGameServerGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGameServerGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGameServerGroupsOutputResponse` public func listGameServerGroupsPaginated(input: ListGameServerGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGameServerGroupsInput.nextToken, outputKey: \ListGameServerGroupsOutputResponse.nextToken, paginationFunction: self.listGameServerGroups(input:)) } @@ -615,24 +596,23 @@ extension ListGameServerGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGameServerGroupsPaginated` -/// to access the nested member `[GameLiftClientTypes.GameServerGroup]` -/// - Returns: `[GameLiftClientTypes.GameServerGroup]` extension PaginatorSequence where Input == ListGameServerGroupsInput, Output == ListGameServerGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGameServerGroupsPaginated` + /// to access the nested member `[GameLiftClientTypes.GameServerGroup]` + /// - Returns: `[GameLiftClientTypes.GameServerGroup]` public func gameServerGroups() async throws -> [GameLiftClientTypes.GameServerGroup] { return try await self.asyncCompactMap { item in item.gameServerGroups } } } - -/// Paginate over `[ListGameServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGameServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGameServersOutputResponse` extension GameLiftClient { + /// Paginate over `[ListGameServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGameServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGameServersOutputResponse` public func listGameServersPaginated(input: ListGameServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGameServersInput.nextToken, outputKey: \ListGameServersOutputResponse.nextToken, paginationFunction: self.listGameServers(input:)) } @@ -648,24 +628,23 @@ extension ListGameServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGameServersPaginated` -/// to access the nested member `[GameLiftClientTypes.GameServer]` -/// - Returns: `[GameLiftClientTypes.GameServer]` extension PaginatorSequence where Input == ListGameServersInput, Output == ListGameServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGameServersPaginated` + /// to access the nested member `[GameLiftClientTypes.GameServer]` + /// - Returns: `[GameLiftClientTypes.GameServer]` public func gameServers() async throws -> [GameLiftClientTypes.GameServer] { return try await self.asyncCompactMap { item in item.gameServers } } } - -/// Paginate over `[ListLocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLocationsOutputResponse` extension GameLiftClient { + /// Paginate over `[ListLocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLocationsOutputResponse` public func listLocationsPaginated(input: ListLocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLocationsInput.nextToken, outputKey: \ListLocationsOutputResponse.nextToken, paginationFunction: self.listLocations(input:)) } @@ -680,24 +659,23 @@ extension ListLocationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLocationsPaginated` -/// to access the nested member `[GameLiftClientTypes.LocationModel]` -/// - Returns: `[GameLiftClientTypes.LocationModel]` extension PaginatorSequence where Input == ListLocationsInput, Output == ListLocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLocationsPaginated` + /// to access the nested member `[GameLiftClientTypes.LocationModel]` + /// - Returns: `[GameLiftClientTypes.LocationModel]` public func locations() async throws -> [GameLiftClientTypes.LocationModel] { return try await self.asyncCompactMap { item in item.locations } } } - -/// Paginate over `[ListScriptsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListScriptsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListScriptsOutputResponse` extension GameLiftClient { + /// Paginate over `[ListScriptsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListScriptsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListScriptsOutputResponse` public func listScriptsPaginated(input: ListScriptsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListScriptsInput.nextToken, outputKey: \ListScriptsOutputResponse.nextToken, paginationFunction: self.listScripts(input:)) } @@ -711,24 +689,23 @@ extension ListScriptsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listScriptsPaginated` -/// to access the nested member `[GameLiftClientTypes.Script]` -/// - Returns: `[GameLiftClientTypes.Script]` extension PaginatorSequence where Input == ListScriptsInput, Output == ListScriptsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listScriptsPaginated` + /// to access the nested member `[GameLiftClientTypes.Script]` + /// - Returns: `[GameLiftClientTypes.Script]` public func scripts() async throws -> [GameLiftClientTypes.Script] { return try await self.asyncCompactMap { item in item.scripts } } } - -/// Paginate over `[SearchGameSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchGameSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchGameSessionsOutputResponse` extension GameLiftClient { + /// Paginate over `[SearchGameSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchGameSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchGameSessionsOutputResponse` public func searchGameSessionsPaginated(input: SearchGameSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchGameSessionsInput.nextToken, outputKey: \SearchGameSessionsOutputResponse.nextToken, paginationFunction: self.searchGameSessions(input:)) } @@ -747,10 +724,10 @@ extension SearchGameSessionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchGameSessionsPaginated` -/// to access the nested member `[GameLiftClientTypes.GameSession]` -/// - Returns: `[GameLiftClientTypes.GameSession]` extension PaginatorSequence where Input == SearchGameSessionsInput, Output == SearchGameSessionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchGameSessionsPaginated` + /// to access the nested member `[GameLiftClientTypes.GameSession]` + /// - Returns: `[GameLiftClientTypes.GameSession]` public func gameSessions() async throws -> [GameLiftClientTypes.GameSession] { return try await self.asyncCompactMap { item in item.gameSessions } } diff --git a/Sources/Services/AWSGameSparks/Paginators.swift b/Sources/Services/AWSGameSparks/Paginators.swift index d9e747a6fe9..6f97cddee51 100644 --- a/Sources/Services/AWSGameSparks/Paginators.swift +++ b/Sources/Services/AWSGameSparks/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListExtensionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExtensionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExtensionsOutputResponse` extension GameSparksClient { + /// Paginate over `[ListExtensionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExtensionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExtensionsOutputResponse` public func listExtensionsPaginated(input: ListExtensionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExtensionsInput.nextToken, outputKey: \ListExtensionsOutputResponse.nextToken, paginationFunction: self.listExtensions(input:)) } @@ -25,24 +24,23 @@ extension ListExtensionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExtensionsPaginated` -/// to access the nested member `[GameSparksClientTypes.ExtensionDetails]` -/// - Returns: `[GameSparksClientTypes.ExtensionDetails]` extension PaginatorSequence where Input == ListExtensionsInput, Output == ListExtensionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExtensionsPaginated` + /// to access the nested member `[GameSparksClientTypes.ExtensionDetails]` + /// - Returns: `[GameSparksClientTypes.ExtensionDetails]` public func extensions() async throws -> [GameSparksClientTypes.ExtensionDetails] { return try await self.asyncCompactMap { item in item.extensions } } } - -/// Paginate over `[ListExtensionVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExtensionVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExtensionVersionsOutputResponse` extension GameSparksClient { + /// Paginate over `[ListExtensionVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExtensionVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExtensionVersionsOutputResponse` public func listExtensionVersionsPaginated(input: ListExtensionVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExtensionVersionsInput.nextToken, outputKey: \ListExtensionVersionsOutputResponse.nextToken, paginationFunction: self.listExtensionVersions(input:)) } @@ -58,24 +56,23 @@ extension ListExtensionVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExtensionVersionsPaginated` -/// to access the nested member `[GameSparksClientTypes.ExtensionVersionDetails]` -/// - Returns: `[GameSparksClientTypes.ExtensionVersionDetails]` extension PaginatorSequence where Input == ListExtensionVersionsInput, Output == ListExtensionVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExtensionVersionsPaginated` + /// to access the nested member `[GameSparksClientTypes.ExtensionVersionDetails]` + /// - Returns: `[GameSparksClientTypes.ExtensionVersionDetails]` public func extensionVersions() async throws -> [GameSparksClientTypes.ExtensionVersionDetails] { return try await self.asyncCompactMap { item in item.extensionVersions } } } - -/// Paginate over `[ListGamesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGamesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGamesOutputResponse` extension GameSparksClient { + /// Paginate over `[ListGamesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGamesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGamesOutputResponse` public func listGamesPaginated(input: ListGamesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGamesInput.nextToken, outputKey: \ListGamesOutputResponse.nextToken, paginationFunction: self.listGames(input:)) } @@ -89,24 +86,23 @@ extension ListGamesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGamesPaginated` -/// to access the nested member `[GameSparksClientTypes.GameSummary]` -/// - Returns: `[GameSparksClientTypes.GameSummary]` extension PaginatorSequence where Input == ListGamesInput, Output == ListGamesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGamesPaginated` + /// to access the nested member `[GameSparksClientTypes.GameSummary]` + /// - Returns: `[GameSparksClientTypes.GameSummary]` public func games() async throws -> [GameSparksClientTypes.GameSummary] { return try await self.asyncCompactMap { item in item.games } } } - -/// Paginate over `[ListGeneratedCodeJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGeneratedCodeJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGeneratedCodeJobsOutputResponse` extension GameSparksClient { + /// Paginate over `[ListGeneratedCodeJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGeneratedCodeJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGeneratedCodeJobsOutputResponse` public func listGeneratedCodeJobsPaginated(input: ListGeneratedCodeJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGeneratedCodeJobsInput.nextToken, outputKey: \ListGeneratedCodeJobsOutputResponse.nextToken, paginationFunction: self.listGeneratedCodeJobs(input:)) } @@ -122,24 +118,23 @@ extension ListGeneratedCodeJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGeneratedCodeJobsPaginated` -/// to access the nested member `[GameSparksClientTypes.GeneratedCodeJobDetails]` -/// - Returns: `[GameSparksClientTypes.GeneratedCodeJobDetails]` extension PaginatorSequence where Input == ListGeneratedCodeJobsInput, Output == ListGeneratedCodeJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGeneratedCodeJobsPaginated` + /// to access the nested member `[GameSparksClientTypes.GeneratedCodeJobDetails]` + /// - Returns: `[GameSparksClientTypes.GeneratedCodeJobDetails]` public func generatedCodeJobs() async throws -> [GameSparksClientTypes.GeneratedCodeJobDetails] { return try await self.asyncCompactMap { item in item.generatedCodeJobs } } } - -/// Paginate over `[ListSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotsOutputResponse` extension GameSparksClient { + /// Paginate over `[ListSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSnapshotsOutputResponse` public func listSnapshotsPaginated(input: ListSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSnapshotsInput.nextToken, outputKey: \ListSnapshotsOutputResponse.nextToken, paginationFunction: self.listSnapshots(input:)) } @@ -154,24 +149,23 @@ extension ListSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSnapshotsPaginated` -/// to access the nested member `[GameSparksClientTypes.SnapshotSummary]` -/// - Returns: `[GameSparksClientTypes.SnapshotSummary]` extension PaginatorSequence where Input == ListSnapshotsInput, Output == ListSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSnapshotsPaginated` + /// to access the nested member `[GameSparksClientTypes.SnapshotSummary]` + /// - Returns: `[GameSparksClientTypes.SnapshotSummary]` public func snapshots() async throws -> [GameSparksClientTypes.SnapshotSummary] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[ListStageDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStageDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStageDeploymentsOutputResponse` extension GameSparksClient { + /// Paginate over `[ListStageDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStageDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStageDeploymentsOutputResponse` public func listStageDeploymentsPaginated(input: ListStageDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStageDeploymentsInput.nextToken, outputKey: \ListStageDeploymentsOutputResponse.nextToken, paginationFunction: self.listStageDeployments(input:)) } @@ -187,24 +181,23 @@ extension ListStageDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStageDeploymentsPaginated` -/// to access the nested member `[GameSparksClientTypes.StageDeploymentSummary]` -/// - Returns: `[GameSparksClientTypes.StageDeploymentSummary]` extension PaginatorSequence where Input == ListStageDeploymentsInput, Output == ListStageDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStageDeploymentsPaginated` + /// to access the nested member `[GameSparksClientTypes.StageDeploymentSummary]` + /// - Returns: `[GameSparksClientTypes.StageDeploymentSummary]` public func stageDeployments() async throws -> [GameSparksClientTypes.StageDeploymentSummary] { return try await self.asyncCompactMap { item in item.stageDeployments } } } - -/// Paginate over `[ListStagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStagesOutputResponse` extension GameSparksClient { + /// Paginate over `[ListStagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStagesOutputResponse` public func listStagesPaginated(input: ListStagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStagesInput.nextToken, outputKey: \ListStagesOutputResponse.nextToken, paginationFunction: self.listStages(input:)) } @@ -219,10 +212,10 @@ extension ListStagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStagesPaginated` -/// to access the nested member `[GameSparksClientTypes.StageSummary]` -/// - Returns: `[GameSparksClientTypes.StageSummary]` extension PaginatorSequence where Input == ListStagesInput, Output == ListStagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStagesPaginated` + /// to access the nested member `[GameSparksClientTypes.StageSummary]` + /// - Returns: `[GameSparksClientTypes.StageSummary]` public func stages() async throws -> [GameSparksClientTypes.StageSummary] { return try await self.asyncCompactMap { item in item.stages } } diff --git a/Sources/Services/AWSGlacier/Paginators.swift b/Sources/Services/AWSGlacier/Paginators.swift index 089a7531879..3151980cd37 100644 --- a/Sources/Services/AWSGlacier/Paginators.swift +++ b/Sources/Services/AWSGlacier/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension GlacierClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.marker, outputKey: \ListJobsOutputResponse.marker, paginationFunction: self.listJobs(input:)) } @@ -29,24 +28,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[GlacierClientTypes.GlacierJobDescription]` -/// - Returns: `[GlacierClientTypes.GlacierJobDescription]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[GlacierClientTypes.GlacierJobDescription]` + /// - Returns: `[GlacierClientTypes.GlacierJobDescription]` public func jobList() async throws -> [GlacierClientTypes.GlacierJobDescription] { return try await self.asyncCompactMap { item in item.jobList } } } - -/// Paginate over `[ListMultipartUploadsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMultipartUploadsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMultipartUploadsOutputResponse` extension GlacierClient { + /// Paginate over `[ListMultipartUploadsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMultipartUploadsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMultipartUploadsOutputResponse` public func listMultipartUploadsPaginated(input: ListMultipartUploadsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMultipartUploadsInput.marker, outputKey: \ListMultipartUploadsOutputResponse.marker, paginationFunction: self.listMultipartUploads(input:)) } @@ -62,24 +60,23 @@ extension ListMultipartUploadsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMultipartUploadsPaginated` -/// to access the nested member `[GlacierClientTypes.UploadListElement]` -/// - Returns: `[GlacierClientTypes.UploadListElement]` extension PaginatorSequence where Input == ListMultipartUploadsInput, Output == ListMultipartUploadsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMultipartUploadsPaginated` + /// to access the nested member `[GlacierClientTypes.UploadListElement]` + /// - Returns: `[GlacierClientTypes.UploadListElement]` public func uploadsList() async throws -> [GlacierClientTypes.UploadListElement] { return try await self.asyncCompactMap { item in item.uploadsList } } } - -/// Paginate over `[ListPartsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPartsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPartsOutputResponse` extension GlacierClient { + /// Paginate over `[ListPartsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPartsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPartsOutputResponse` public func listPartsPaginated(input: ListPartsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPartsInput.marker, outputKey: \ListPartsOutputResponse.marker, paginationFunction: self.listParts(input:)) } @@ -96,24 +93,23 @@ extension ListPartsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPartsPaginated` -/// to access the nested member `[GlacierClientTypes.PartListElement]` -/// - Returns: `[GlacierClientTypes.PartListElement]` extension PaginatorSequence where Input == ListPartsInput, Output == ListPartsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPartsPaginated` + /// to access the nested member `[GlacierClientTypes.PartListElement]` + /// - Returns: `[GlacierClientTypes.PartListElement]` public func parts() async throws -> [GlacierClientTypes.PartListElement] { return try await self.asyncCompactMap { item in item.parts } } } - -/// Paginate over `[ListVaultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVaultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVaultsOutputResponse` extension GlacierClient { + /// Paginate over `[ListVaultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVaultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVaultsOutputResponse` public func listVaultsPaginated(input: ListVaultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVaultsInput.marker, outputKey: \ListVaultsOutputResponse.marker, paginationFunction: self.listVaults(input:)) } @@ -128,10 +124,10 @@ extension ListVaultsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listVaultsPaginated` -/// to access the nested member `[GlacierClientTypes.DescribeVaultOutput]` -/// - Returns: `[GlacierClientTypes.DescribeVaultOutput]` extension PaginatorSequence where Input == ListVaultsInput, Output == ListVaultsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listVaultsPaginated` + /// to access the nested member `[GlacierClientTypes.DescribeVaultOutput]` + /// - Returns: `[GlacierClientTypes.DescribeVaultOutput]` public func vaultList() async throws -> [GlacierClientTypes.DescribeVaultOutput] { return try await self.asyncCompactMap { item in item.vaultList } } diff --git a/Sources/Services/AWSGlobalAccelerator/Paginators.swift b/Sources/Services/AWSGlobalAccelerator/Paginators.swift index 497c86a5b81..831c707a291 100644 --- a/Sources/Services/AWSGlobalAccelerator/Paginators.swift +++ b/Sources/Services/AWSGlobalAccelerator/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAcceleratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAcceleratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAcceleratorsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListAcceleratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAcceleratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAcceleratorsOutputResponse` public func listAcceleratorsPaginated(input: ListAcceleratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAcceleratorsInput.nextToken, outputKey: \ListAcceleratorsOutputResponse.nextToken, paginationFunction: self.listAccelerators(input:)) } @@ -25,24 +24,23 @@ extension ListAcceleratorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAcceleratorsPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.Accelerator]` -/// - Returns: `[GlobalAcceleratorClientTypes.Accelerator]` extension PaginatorSequence where Input == ListAcceleratorsInput, Output == ListAcceleratorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAcceleratorsPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.Accelerator]` + /// - Returns: `[GlobalAcceleratorClientTypes.Accelerator]` public func accelerators() async throws -> [GlobalAcceleratorClientTypes.Accelerator] { return try await self.asyncCompactMap { item in item.accelerators } } } - -/// Paginate over `[ListByoipCidrsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListByoipCidrsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListByoipCidrsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListByoipCidrsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListByoipCidrsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListByoipCidrsOutputResponse` public func listByoipCidrsPaginated(input: ListByoipCidrsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListByoipCidrsInput.nextToken, outputKey: \ListByoipCidrsOutputResponse.nextToken, paginationFunction: self.listByoipCidrs(input:)) } @@ -56,24 +54,23 @@ extension ListByoipCidrsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listByoipCidrsPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.ByoipCidr]` -/// - Returns: `[GlobalAcceleratorClientTypes.ByoipCidr]` extension PaginatorSequence where Input == ListByoipCidrsInput, Output == ListByoipCidrsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listByoipCidrsPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.ByoipCidr]` + /// - Returns: `[GlobalAcceleratorClientTypes.ByoipCidr]` public func byoipCidrs() async throws -> [GlobalAcceleratorClientTypes.ByoipCidr] { return try await self.asyncCompactMap { item in item.byoipCidrs } } } - -/// Paginate over `[ListCustomRoutingAcceleratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomRoutingAcceleratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingAcceleratorsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListCustomRoutingAcceleratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomRoutingAcceleratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingAcceleratorsOutputResponse` public func listCustomRoutingAcceleratorsPaginated(input: ListCustomRoutingAcceleratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomRoutingAcceleratorsInput.nextToken, outputKey: \ListCustomRoutingAcceleratorsOutputResponse.nextToken, paginationFunction: self.listCustomRoutingAccelerators(input:)) } @@ -87,24 +84,23 @@ extension ListCustomRoutingAcceleratorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingAcceleratorsPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.CustomRoutingAccelerator]` -/// - Returns: `[GlobalAcceleratorClientTypes.CustomRoutingAccelerator]` extension PaginatorSequence where Input == ListCustomRoutingAcceleratorsInput, Output == ListCustomRoutingAcceleratorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingAcceleratorsPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.CustomRoutingAccelerator]` + /// - Returns: `[GlobalAcceleratorClientTypes.CustomRoutingAccelerator]` public func accelerators() async throws -> [GlobalAcceleratorClientTypes.CustomRoutingAccelerator] { return try await self.asyncCompactMap { item in item.accelerators } } } - -/// Paginate over `[ListCustomRoutingEndpointGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomRoutingEndpointGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingEndpointGroupsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListCustomRoutingEndpointGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomRoutingEndpointGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingEndpointGroupsOutputResponse` public func listCustomRoutingEndpointGroupsPaginated(input: ListCustomRoutingEndpointGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomRoutingEndpointGroupsInput.nextToken, outputKey: \ListCustomRoutingEndpointGroupsOutputResponse.nextToken, paginationFunction: self.listCustomRoutingEndpointGroups(input:)) } @@ -118,16 +114,15 @@ extension ListCustomRoutingEndpointGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListCustomRoutingListenersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomRoutingListenersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingListenersOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListCustomRoutingListenersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomRoutingListenersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingListenersOutputResponse` public func listCustomRoutingListenersPaginated(input: ListCustomRoutingListenersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomRoutingListenersInput.nextToken, outputKey: \ListCustomRoutingListenersOutputResponse.nextToken, paginationFunction: self.listCustomRoutingListeners(input:)) } @@ -142,24 +137,23 @@ extension ListCustomRoutingListenersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingListenersPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.CustomRoutingListener]` -/// - Returns: `[GlobalAcceleratorClientTypes.CustomRoutingListener]` extension PaginatorSequence where Input == ListCustomRoutingListenersInput, Output == ListCustomRoutingListenersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingListenersPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.CustomRoutingListener]` + /// - Returns: `[GlobalAcceleratorClientTypes.CustomRoutingListener]` public func listeners() async throws -> [GlobalAcceleratorClientTypes.CustomRoutingListener] { return try await self.asyncCompactMap { item in item.listeners } } } - -/// Paginate over `[ListCustomRoutingPortMappingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomRoutingPortMappingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingPortMappingsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListCustomRoutingPortMappingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomRoutingPortMappingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingPortMappingsOutputResponse` public func listCustomRoutingPortMappingsPaginated(input: ListCustomRoutingPortMappingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomRoutingPortMappingsInput.nextToken, outputKey: \ListCustomRoutingPortMappingsOutputResponse.nextToken, paginationFunction: self.listCustomRoutingPortMappings(input:)) } @@ -175,24 +169,23 @@ extension ListCustomRoutingPortMappingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingPortMappingsPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.PortMapping]` -/// - Returns: `[GlobalAcceleratorClientTypes.PortMapping]` extension PaginatorSequence where Input == ListCustomRoutingPortMappingsInput, Output == ListCustomRoutingPortMappingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingPortMappingsPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.PortMapping]` + /// - Returns: `[GlobalAcceleratorClientTypes.PortMapping]` public func portMappings() async throws -> [GlobalAcceleratorClientTypes.PortMapping] { return try await self.asyncCompactMap { item in item.portMappings } } } - -/// Paginate over `[ListCustomRoutingPortMappingsByDestinationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomRoutingPortMappingsByDestinationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingPortMappingsByDestinationOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListCustomRoutingPortMappingsByDestinationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomRoutingPortMappingsByDestinationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomRoutingPortMappingsByDestinationOutputResponse` public func listCustomRoutingPortMappingsByDestinationPaginated(input: ListCustomRoutingPortMappingsByDestinationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomRoutingPortMappingsByDestinationInput.nextToken, outputKey: \ListCustomRoutingPortMappingsByDestinationOutputResponse.nextToken, paginationFunction: self.listCustomRoutingPortMappingsByDestination(input:)) } @@ -208,24 +201,23 @@ extension ListCustomRoutingPortMappingsByDestinationInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingPortMappingsByDestinationPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.DestinationPortMapping]` -/// - Returns: `[GlobalAcceleratorClientTypes.DestinationPortMapping]` extension PaginatorSequence where Input == ListCustomRoutingPortMappingsByDestinationInput, Output == ListCustomRoutingPortMappingsByDestinationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomRoutingPortMappingsByDestinationPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.DestinationPortMapping]` + /// - Returns: `[GlobalAcceleratorClientTypes.DestinationPortMapping]` public func destinationPortMappings() async throws -> [GlobalAcceleratorClientTypes.DestinationPortMapping] { return try await self.asyncCompactMap { item in item.destinationPortMappings } } } - -/// Paginate over `[ListEndpointGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointGroupsOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListEndpointGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointGroupsOutputResponse` public func listEndpointGroupsPaginated(input: ListEndpointGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointGroupsInput.nextToken, outputKey: \ListEndpointGroupsOutputResponse.nextToken, paginationFunction: self.listEndpointGroups(input:)) } @@ -240,24 +232,23 @@ extension ListEndpointGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointGroupsPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.EndpointGroup]` -/// - Returns: `[GlobalAcceleratorClientTypes.EndpointGroup]` extension PaginatorSequence where Input == ListEndpointGroupsInput, Output == ListEndpointGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointGroupsPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.EndpointGroup]` + /// - Returns: `[GlobalAcceleratorClientTypes.EndpointGroup]` public func endpointGroups() async throws -> [GlobalAcceleratorClientTypes.EndpointGroup] { return try await self.asyncCompactMap { item in item.endpointGroups } } } - -/// Paginate over `[ListListenersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListListenersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListListenersOutputResponse` extension GlobalAcceleratorClient { + /// Paginate over `[ListListenersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListListenersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListListenersOutputResponse` public func listListenersPaginated(input: ListListenersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListListenersInput.nextToken, outputKey: \ListListenersOutputResponse.nextToken, paginationFunction: self.listListeners(input:)) } @@ -272,10 +263,10 @@ extension ListListenersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listListenersPaginated` -/// to access the nested member `[GlobalAcceleratorClientTypes.Listener]` -/// - Returns: `[GlobalAcceleratorClientTypes.Listener]` extension PaginatorSequence where Input == ListListenersInput, Output == ListListenersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listListenersPaginated` + /// to access the nested member `[GlobalAcceleratorClientTypes.Listener]` + /// - Returns: `[GlobalAcceleratorClientTypes.Listener]` public func listeners() async throws -> [GlobalAcceleratorClientTypes.Listener] { return try await self.asyncCompactMap { item in item.listeners } } diff --git a/Sources/Services/AWSGlue/Paginators.swift b/Sources/Services/AWSGlue/Paginators.swift index 3a6d54e3a51..5eac6543c8c 100644 --- a/Sources/Services/AWSGlue/Paginators.swift +++ b/Sources/Services/AWSGlue/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetBlueprintRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBlueprintRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBlueprintRunsOutputResponse` extension GlueClient { + /// Paginate over `[GetBlueprintRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBlueprintRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBlueprintRunsOutputResponse` public func getBlueprintRunsPaginated(input: GetBlueprintRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBlueprintRunsInput.nextToken, outputKey: \GetBlueprintRunsOutputResponse.nextToken, paginationFunction: self.getBlueprintRuns(input:)) } @@ -25,16 +24,15 @@ extension GetBlueprintRunsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetClassifiersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetClassifiersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetClassifiersOutputResponse` extension GlueClient { + /// Paginate over `[GetClassifiersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetClassifiersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetClassifiersOutputResponse` public func getClassifiersPaginated(input: GetClassifiersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetClassifiersInput.nextToken, outputKey: \GetClassifiersOutputResponse.nextToken, paginationFunction: self.getClassifiers(input:)) } @@ -47,16 +45,15 @@ extension GetClassifiersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConnectionsOutputResponse` extension GlueClient { + /// Paginate over `[GetConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConnectionsOutputResponse` public func getConnectionsPaginated(input: GetConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConnectionsInput.nextToken, outputKey: \GetConnectionsOutputResponse.nextToken, paginationFunction: self.getConnections(input:)) } @@ -72,16 +69,15 @@ extension GetConnectionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetCrawlerMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCrawlerMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCrawlerMetricsOutputResponse` extension GlueClient { + /// Paginate over `[GetCrawlerMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCrawlerMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCrawlerMetricsOutputResponse` public func getCrawlerMetricsPaginated(input: GetCrawlerMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCrawlerMetricsInput.nextToken, outputKey: \GetCrawlerMetricsOutputResponse.nextToken, paginationFunction: self.getCrawlerMetrics(input:)) } @@ -95,16 +91,15 @@ extension GetCrawlerMetricsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetCrawlersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCrawlersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCrawlersOutputResponse` extension GlueClient { + /// Paginate over `[GetCrawlersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCrawlersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCrawlersOutputResponse` public func getCrawlersPaginated(input: GetCrawlersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCrawlersInput.nextToken, outputKey: \GetCrawlersOutputResponse.nextToken, paginationFunction: self.getCrawlers(input:)) } @@ -117,16 +112,15 @@ extension GetCrawlersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDatabasesOutputResponse` extension GlueClient { + /// Paginate over `[GetDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDatabasesOutputResponse` public func getDatabasesPaginated(input: GetDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDatabasesInput.nextToken, outputKey: \GetDatabasesOutputResponse.nextToken, paginationFunction: self.getDatabases(input:)) } @@ -141,16 +135,15 @@ extension GetDatabasesInput: ClientRuntime.PaginateToken { resourceShareType: self.resourceShareType )} } - -/// Paginate over `[GetDevEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDevEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDevEndpointsOutputResponse` extension GlueClient { + /// Paginate over `[GetDevEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDevEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDevEndpointsOutputResponse` public func getDevEndpointsPaginated(input: GetDevEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDevEndpointsInput.nextToken, outputKey: \GetDevEndpointsOutputResponse.nextToken, paginationFunction: self.getDevEndpoints(input:)) } @@ -163,16 +156,15 @@ extension GetDevEndpointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetJobRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetJobRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetJobRunsOutputResponse` extension GlueClient { + /// Paginate over `[GetJobRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetJobRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetJobRunsOutputResponse` public func getJobRunsPaginated(input: GetJobRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetJobRunsInput.nextToken, outputKey: \GetJobRunsOutputResponse.nextToken, paginationFunction: self.getJobRuns(input:)) } @@ -186,16 +178,15 @@ extension GetJobRunsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetJobsOutputResponse` extension GlueClient { + /// Paginate over `[GetJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetJobsOutputResponse` public func getJobsPaginated(input: GetJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetJobsInput.nextToken, outputKey: \GetJobsOutputResponse.nextToken, paginationFunction: self.getJobs(input:)) } @@ -208,16 +199,15 @@ extension GetJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetMLTaskRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMLTaskRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMLTaskRunsOutputResponse` extension GlueClient { + /// Paginate over `[GetMLTaskRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMLTaskRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMLTaskRunsOutputResponse` public func getMLTaskRunsPaginated(input: GetMLTaskRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMLTaskRunsInput.nextToken, outputKey: \GetMLTaskRunsOutputResponse.nextToken, paginationFunction: self.getMLTaskRuns(input:)) } @@ -233,16 +223,15 @@ extension GetMLTaskRunsInput: ClientRuntime.PaginateToken { transformId: self.transformId )} } - -/// Paginate over `[GetMLTransformsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMLTransformsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMLTransformsOutputResponse` extension GlueClient { + /// Paginate over `[GetMLTransformsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMLTransformsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMLTransformsOutputResponse` public func getMLTransformsPaginated(input: GetMLTransformsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMLTransformsInput.nextToken, outputKey: \GetMLTransformsOutputResponse.nextToken, paginationFunction: self.getMLTransforms(input:)) } @@ -257,16 +246,15 @@ extension GetMLTransformsInput: ClientRuntime.PaginateToken { sort: self.sort )} } - -/// Paginate over `[GetPartitionIndexesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPartitionIndexesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPartitionIndexesOutputResponse` extension GlueClient { + /// Paginate over `[GetPartitionIndexesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPartitionIndexesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPartitionIndexesOutputResponse` public func getPartitionIndexesPaginated(input: GetPartitionIndexesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPartitionIndexesInput.nextToken, outputKey: \GetPartitionIndexesOutputResponse.nextToken, paginationFunction: self.getPartitionIndexes(input:)) } @@ -282,24 +270,23 @@ extension GetPartitionIndexesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getPartitionIndexesPaginated` -/// to access the nested member `[GlueClientTypes.PartitionIndexDescriptor]` -/// - Returns: `[GlueClientTypes.PartitionIndexDescriptor]` extension PaginatorSequence where Input == GetPartitionIndexesInput, Output == GetPartitionIndexesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getPartitionIndexesPaginated` + /// to access the nested member `[GlueClientTypes.PartitionIndexDescriptor]` + /// - Returns: `[GlueClientTypes.PartitionIndexDescriptor]` public func partitionIndexDescriptorList() async throws -> [GlueClientTypes.PartitionIndexDescriptor] { return try await self.asyncCompactMap { item in item.partitionIndexDescriptorList } } } - -/// Paginate over `[GetPartitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPartitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPartitionsOutputResponse` extension GlueClient { + /// Paginate over `[GetPartitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPartitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPartitionsOutputResponse` public func getPartitionsPaginated(input: GetPartitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPartitionsInput.nextToken, outputKey: \GetPartitionsOutputResponse.nextToken, paginationFunction: self.getPartitions(input:)) } @@ -320,16 +307,15 @@ extension GetPartitionsInput: ClientRuntime.PaginateToken { transactionId: self.transactionId )} } - -/// Paginate over `[GetResourcePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` extension GlueClient { + /// Paginate over `[GetResourcePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` public func getResourcePoliciesPaginated(input: GetResourcePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcePoliciesInput.nextToken, outputKey: \GetResourcePoliciesOutputResponse.nextToken, paginationFunction: self.getResourcePolicies(input:)) } @@ -343,24 +329,23 @@ extension GetResourcePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` -/// to access the nested member `[GlueClientTypes.GluePolicy]` -/// - Returns: `[GlueClientTypes.GluePolicy]` extension PaginatorSequence where Input == GetResourcePoliciesInput, Output == GetResourcePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` + /// to access the nested member `[GlueClientTypes.GluePolicy]` + /// - Returns: `[GlueClientTypes.GluePolicy]` public func getResourcePoliciesResponseList() async throws -> [GlueClientTypes.GluePolicy] { return try await self.asyncCompactMap { item in item.getResourcePoliciesResponseList } } } - -/// Paginate over `[GetSecurityConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSecurityConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSecurityConfigurationsOutputResponse` extension GlueClient { + /// Paginate over `[GetSecurityConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSecurityConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSecurityConfigurationsOutputResponse` public func getSecurityConfigurationsPaginated(input: GetSecurityConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSecurityConfigurationsInput.nextToken, outputKey: \GetSecurityConfigurationsOutputResponse.nextToken, paginationFunction: self.getSecurityConfigurations(input:)) } @@ -374,24 +359,23 @@ extension GetSecurityConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSecurityConfigurationsPaginated` -/// to access the nested member `[GlueClientTypes.SecurityConfiguration]` -/// - Returns: `[GlueClientTypes.SecurityConfiguration]` extension PaginatorSequence where Input == GetSecurityConfigurationsInput, Output == GetSecurityConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSecurityConfigurationsPaginated` + /// to access the nested member `[GlueClientTypes.SecurityConfiguration]` + /// - Returns: `[GlueClientTypes.SecurityConfiguration]` public func securityConfigurations() async throws -> [GlueClientTypes.SecurityConfiguration] { return try await self.asyncCompactMap { item in item.securityConfigurations } } } - -/// Paginate over `[GetTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTablesOutputResponse` extension GlueClient { + /// Paginate over `[GetTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTablesOutputResponse` public func getTablesPaginated(input: GetTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTablesInput.nextToken, outputKey: \GetTablesOutputResponse.nextToken, paginationFunction: self.getTables(input:)) } @@ -409,16 +393,15 @@ extension GetTablesInput: ClientRuntime.PaginateToken { transactionId: self.transactionId )} } - -/// Paginate over `[GetTableVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTableVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTableVersionsOutputResponse` extension GlueClient { + /// Paginate over `[GetTableVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTableVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTableVersionsOutputResponse` public func getTableVersionsPaginated(input: GetTableVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTableVersionsInput.nextToken, outputKey: \GetTableVersionsOutputResponse.nextToken, paginationFunction: self.getTableVersions(input:)) } @@ -434,16 +417,15 @@ extension GetTableVersionsInput: ClientRuntime.PaginateToken { tableName: self.tableName )} } - -/// Paginate over `[GetTriggersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTriggersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTriggersOutputResponse` extension GlueClient { + /// Paginate over `[GetTriggersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTriggersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTriggersOutputResponse` public func getTriggersPaginated(input: GetTriggersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTriggersInput.nextToken, outputKey: \GetTriggersOutputResponse.nextToken, paginationFunction: self.getTriggers(input:)) } @@ -457,16 +439,15 @@ extension GetTriggersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetUnfilteredPartitionsMetadataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUnfilteredPartitionsMetadataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUnfilteredPartitionsMetadataOutputResponse` extension GlueClient { + /// Paginate over `[GetUnfilteredPartitionsMetadataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUnfilteredPartitionsMetadataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUnfilteredPartitionsMetadataOutputResponse` public func getUnfilteredPartitionsMetadataPaginated(input: GetUnfilteredPartitionsMetadataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUnfilteredPartitionsMetadataInput.nextToken, outputKey: \GetUnfilteredPartitionsMetadataOutputResponse.nextToken, paginationFunction: self.getUnfilteredPartitionsMetadata(input:)) } @@ -486,16 +467,15 @@ extension GetUnfilteredPartitionsMetadataInput: ClientRuntime.PaginateToken { tableName: self.tableName )} } - -/// Paginate over `[GetUserDefinedFunctionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUserDefinedFunctionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUserDefinedFunctionsOutputResponse` extension GlueClient { + /// Paginate over `[GetUserDefinedFunctionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUserDefinedFunctionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUserDefinedFunctionsOutputResponse` public func getUserDefinedFunctionsPaginated(input: GetUserDefinedFunctionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUserDefinedFunctionsInput.nextToken, outputKey: \GetUserDefinedFunctionsOutputResponse.nextToken, paginationFunction: self.getUserDefinedFunctions(input:)) } @@ -511,16 +491,15 @@ extension GetUserDefinedFunctionsInput: ClientRuntime.PaginateToken { pattern: self.pattern )} } - -/// Paginate over `[GetWorkflowRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetWorkflowRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetWorkflowRunsOutputResponse` extension GlueClient { + /// Paginate over `[GetWorkflowRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetWorkflowRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetWorkflowRunsOutputResponse` public func getWorkflowRunsPaginated(input: GetWorkflowRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetWorkflowRunsInput.nextToken, outputKey: \GetWorkflowRunsOutputResponse.nextToken, paginationFunction: self.getWorkflowRuns(input:)) } @@ -535,16 +514,15 @@ extension GetWorkflowRunsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListBlueprintsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBlueprintsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBlueprintsOutputResponse` extension GlueClient { + /// Paginate over `[ListBlueprintsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBlueprintsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBlueprintsOutputResponse` public func listBlueprintsPaginated(input: ListBlueprintsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBlueprintsInput.nextToken, outputKey: \ListBlueprintsOutputResponse.nextToken, paginationFunction: self.listBlueprints(input:)) } @@ -558,16 +536,15 @@ extension ListBlueprintsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListCrawlersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCrawlersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCrawlersOutputResponse` extension GlueClient { + /// Paginate over `[ListCrawlersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCrawlersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCrawlersOutputResponse` public func listCrawlersPaginated(input: ListCrawlersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCrawlersInput.nextToken, outputKey: \ListCrawlersOutputResponse.nextToken, paginationFunction: self.listCrawlers(input:)) } @@ -581,16 +558,15 @@ extension ListCrawlersInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListCustomEntityTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomEntityTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomEntityTypesOutputResponse` extension GlueClient { + /// Paginate over `[ListCustomEntityTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomEntityTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomEntityTypesOutputResponse` public func listCustomEntityTypesPaginated(input: ListCustomEntityTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomEntityTypesInput.nextToken, outputKey: \ListCustomEntityTypesOutputResponse.nextToken, paginationFunction: self.listCustomEntityTypes(input:)) } @@ -603,16 +579,15 @@ extension ListCustomEntityTypesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDataQualityResultsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataQualityResultsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityResultsOutputResponse` extension GlueClient { + /// Paginate over `[ListDataQualityResultsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataQualityResultsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityResultsOutputResponse` public func listDataQualityResultsPaginated(input: ListDataQualityResultsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataQualityResultsInput.nextToken, outputKey: \ListDataQualityResultsOutputResponse.nextToken, paginationFunction: self.listDataQualityResults(input:)) } @@ -626,16 +601,15 @@ extension ListDataQualityResultsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDataQualityRuleRecommendationRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataQualityRuleRecommendationRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRuleRecommendationRunsOutputResponse` extension GlueClient { + /// Paginate over `[ListDataQualityRuleRecommendationRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataQualityRuleRecommendationRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRuleRecommendationRunsOutputResponse` public func listDataQualityRuleRecommendationRunsPaginated(input: ListDataQualityRuleRecommendationRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataQualityRuleRecommendationRunsInput.nextToken, outputKey: \ListDataQualityRuleRecommendationRunsOutputResponse.nextToken, paginationFunction: self.listDataQualityRuleRecommendationRuns(input:)) } @@ -649,16 +623,15 @@ extension ListDataQualityRuleRecommendationRunsInput: ClientRuntime.PaginateToke nextToken: token )} } - -/// Paginate over `[ListDataQualityRulesetEvaluationRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataQualityRulesetEvaluationRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRulesetEvaluationRunsOutputResponse` extension GlueClient { + /// Paginate over `[ListDataQualityRulesetEvaluationRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataQualityRulesetEvaluationRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRulesetEvaluationRunsOutputResponse` public func listDataQualityRulesetEvaluationRunsPaginated(input: ListDataQualityRulesetEvaluationRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataQualityRulesetEvaluationRunsInput.nextToken, outputKey: \ListDataQualityRulesetEvaluationRunsOutputResponse.nextToken, paginationFunction: self.listDataQualityRulesetEvaluationRuns(input:)) } @@ -672,16 +645,15 @@ extension ListDataQualityRulesetEvaluationRunsInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[ListDataQualityRulesetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataQualityRulesetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRulesetsOutputResponse` extension GlueClient { + /// Paginate over `[ListDataQualityRulesetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataQualityRulesetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityRulesetsOutputResponse` public func listDataQualityRulesetsPaginated(input: ListDataQualityRulesetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataQualityRulesetsInput.nextToken, outputKey: \ListDataQualityRulesetsOutputResponse.nextToken, paginationFunction: self.listDataQualityRulesets(input:)) } @@ -696,16 +668,15 @@ extension ListDataQualityRulesetsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListDevEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevEndpointsOutputResponse` extension GlueClient { + /// Paginate over `[ListDevEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevEndpointsOutputResponse` public func listDevEndpointsPaginated(input: ListDevEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevEndpointsInput.nextToken, outputKey: \ListDevEndpointsOutputResponse.nextToken, paginationFunction: self.listDevEndpoints(input:)) } @@ -719,16 +690,15 @@ extension ListDevEndpointsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension GlueClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -742,16 +712,15 @@ extension ListJobsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListMLTransformsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMLTransformsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMLTransformsOutputResponse` extension GlueClient { + /// Paginate over `[ListMLTransformsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMLTransformsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMLTransformsOutputResponse` public func listMLTransformsPaginated(input: ListMLTransformsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMLTransformsInput.nextToken, outputKey: \ListMLTransformsOutputResponse.nextToken, paginationFunction: self.listMLTransforms(input:)) } @@ -767,16 +736,15 @@ extension ListMLTransformsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListRegistriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRegistriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRegistriesOutputResponse` extension GlueClient { + /// Paginate over `[ListRegistriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRegistriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRegistriesOutputResponse` public func listRegistriesPaginated(input: ListRegistriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRegistriesInput.nextToken, outputKey: \ListRegistriesOutputResponse.nextToken, paginationFunction: self.listRegistries(input:)) } @@ -790,24 +758,23 @@ extension ListRegistriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRegistriesPaginated` -/// to access the nested member `[GlueClientTypes.RegistryListItem]` -/// - Returns: `[GlueClientTypes.RegistryListItem]` extension PaginatorSequence where Input == ListRegistriesInput, Output == ListRegistriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRegistriesPaginated` + /// to access the nested member `[GlueClientTypes.RegistryListItem]` + /// - Returns: `[GlueClientTypes.RegistryListItem]` public func registries() async throws -> [GlueClientTypes.RegistryListItem] { return try await self.asyncCompactMap { item in item.registries } } } - -/// Paginate over `[ListSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` extension GlueClient { + /// Paginate over `[ListSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` public func listSchemasPaginated(input: ListSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemasInput.nextToken, outputKey: \ListSchemasOutputResponse.nextToken, paginationFunction: self.listSchemas(input:)) } @@ -822,24 +789,23 @@ extension ListSchemasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` -/// to access the nested member `[GlueClientTypes.SchemaListItem]` -/// - Returns: `[GlueClientTypes.SchemaListItem]` extension PaginatorSequence where Input == ListSchemasInput, Output == ListSchemasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` + /// to access the nested member `[GlueClientTypes.SchemaListItem]` + /// - Returns: `[GlueClientTypes.SchemaListItem]` public func schemas() async throws -> [GlueClientTypes.SchemaListItem] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[ListSchemaVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemaVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemaVersionsOutputResponse` extension GlueClient { + /// Paginate over `[ListSchemaVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemaVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemaVersionsOutputResponse` public func listSchemaVersionsPaginated(input: ListSchemaVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemaVersionsInput.nextToken, outputKey: \ListSchemaVersionsOutputResponse.nextToken, paginationFunction: self.listSchemaVersions(input:)) } @@ -854,24 +820,23 @@ extension ListSchemaVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemaVersionsPaginated` -/// to access the nested member `[GlueClientTypes.SchemaVersionListItem]` -/// - Returns: `[GlueClientTypes.SchemaVersionListItem]` extension PaginatorSequence where Input == ListSchemaVersionsInput, Output == ListSchemaVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemaVersionsPaginated` + /// to access the nested member `[GlueClientTypes.SchemaVersionListItem]` + /// - Returns: `[GlueClientTypes.SchemaVersionListItem]` public func schemas() async throws -> [GlueClientTypes.SchemaVersionListItem] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[ListSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSessionsOutputResponse` extension GlueClient { + /// Paginate over `[ListSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSessionsOutputResponse` public func listSessionsPaginated(input: ListSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSessionsInput.nextToken, outputKey: \ListSessionsOutputResponse.nextToken, paginationFunction: self.listSessions(input:)) } @@ -886,16 +851,15 @@ extension ListSessionsInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListTriggersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTriggersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTriggersOutputResponse` extension GlueClient { + /// Paginate over `[ListTriggersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTriggersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTriggersOutputResponse` public func listTriggersPaginated(input: ListTriggersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTriggersInput.nextToken, outputKey: \ListTriggersOutputResponse.nextToken, paginationFunction: self.listTriggers(input:)) } @@ -910,16 +874,15 @@ extension ListTriggersInput: ClientRuntime.PaginateToken { tags: self.tags )} } - -/// Paginate over `[ListWorkflowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkflowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowsOutputResponse` extension GlueClient { + /// Paginate over `[ListWorkflowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkflowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowsOutputResponse` public func listWorkflowsPaginated(input: ListWorkflowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkflowsInput.nextToken, outputKey: \ListWorkflowsOutputResponse.nextToken, paginationFunction: self.listWorkflows(input:)) } @@ -932,16 +895,15 @@ extension ListWorkflowsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[SearchTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchTablesOutputResponse` extension GlueClient { + /// Paginate over `[SearchTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchTablesOutputResponse` public func searchTablesPaginated(input: SearchTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchTablesInput.nextToken, outputKey: \SearchTablesOutputResponse.nextToken, paginationFunction: self.searchTables(input:)) } diff --git a/Sources/Services/AWSGreengrassV2/Paginators.swift b/Sources/Services/AWSGreengrassV2/Paginators.swift index 12528950cd9..eed10053625 100644 --- a/Sources/Services/AWSGreengrassV2/Paginators.swift +++ b/Sources/Services/AWSGreengrassV2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListClientDevicesAssociatedWithCoreDeviceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClientDevicesAssociatedWithCoreDeviceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClientDevicesAssociatedWithCoreDeviceOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListClientDevicesAssociatedWithCoreDeviceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClientDevicesAssociatedWithCoreDeviceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClientDevicesAssociatedWithCoreDeviceOutputResponse` public func listClientDevicesAssociatedWithCoreDevicePaginated(input: ListClientDevicesAssociatedWithCoreDeviceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClientDevicesAssociatedWithCoreDeviceInput.nextToken, outputKey: \ListClientDevicesAssociatedWithCoreDeviceOutputResponse.nextToken, paginationFunction: self.listClientDevicesAssociatedWithCoreDevice(input:)) } @@ -26,24 +25,23 @@ extension ListClientDevicesAssociatedWithCoreDeviceInput: ClientRuntime.Paginate )} } -/// This paginator transforms the `AsyncSequence` returned by `listClientDevicesAssociatedWithCoreDevicePaginated` -/// to access the nested member `[GreengrassV2ClientTypes.AssociatedClientDevice]` -/// - Returns: `[GreengrassV2ClientTypes.AssociatedClientDevice]` extension PaginatorSequence where Input == ListClientDevicesAssociatedWithCoreDeviceInput, Output == ListClientDevicesAssociatedWithCoreDeviceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClientDevicesAssociatedWithCoreDevicePaginated` + /// to access the nested member `[GreengrassV2ClientTypes.AssociatedClientDevice]` + /// - Returns: `[GreengrassV2ClientTypes.AssociatedClientDevice]` public func associatedClientDevices() async throws -> [GreengrassV2ClientTypes.AssociatedClientDevice] { return try await self.asyncCompactMap { item in item.associatedClientDevices } } } - -/// Paginate over `[ListComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` public func listComponentsPaginated(input: ListComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentsInput.nextToken, outputKey: \ListComponentsOutputResponse.nextToken, paginationFunction: self.listComponents(input:)) } @@ -58,24 +56,23 @@ extension ListComponentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComponentsPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.Component]` -/// - Returns: `[GreengrassV2ClientTypes.Component]` extension PaginatorSequence where Input == ListComponentsInput, Output == ListComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComponentsPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.Component]` + /// - Returns: `[GreengrassV2ClientTypes.Component]` public func components() async throws -> [GreengrassV2ClientTypes.Component] { return try await self.asyncCompactMap { item in item.components } } } - -/// Paginate over `[ListComponentVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentVersionsOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListComponentVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentVersionsOutputResponse` public func listComponentVersionsPaginated(input: ListComponentVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentVersionsInput.nextToken, outputKey: \ListComponentVersionsOutputResponse.nextToken, paginationFunction: self.listComponentVersions(input:)) } @@ -90,24 +87,23 @@ extension ListComponentVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComponentVersionsPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.ComponentVersionListItem]` -/// - Returns: `[GreengrassV2ClientTypes.ComponentVersionListItem]` extension PaginatorSequence where Input == ListComponentVersionsInput, Output == ListComponentVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComponentVersionsPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.ComponentVersionListItem]` + /// - Returns: `[GreengrassV2ClientTypes.ComponentVersionListItem]` public func componentVersions() async throws -> [GreengrassV2ClientTypes.ComponentVersionListItem] { return try await self.asyncCompactMap { item in item.componentVersions } } } - -/// Paginate over `[ListCoreDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCoreDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCoreDevicesOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListCoreDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCoreDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCoreDevicesOutputResponse` public func listCoreDevicesPaginated(input: ListCoreDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCoreDevicesInput.nextToken, outputKey: \ListCoreDevicesOutputResponse.nextToken, paginationFunction: self.listCoreDevices(input:)) } @@ -123,24 +119,23 @@ extension ListCoreDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCoreDevicesPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.CoreDevice]` -/// - Returns: `[GreengrassV2ClientTypes.CoreDevice]` extension PaginatorSequence where Input == ListCoreDevicesInput, Output == ListCoreDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCoreDevicesPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.CoreDevice]` + /// - Returns: `[GreengrassV2ClientTypes.CoreDevice]` public func coreDevices() async throws -> [GreengrassV2ClientTypes.CoreDevice] { return try await self.asyncCompactMap { item in item.coreDevices } } } - -/// Paginate over `[ListDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentsOutputResponse` public func listDeploymentsPaginated(input: ListDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentsInput.nextToken, outputKey: \ListDeploymentsOutputResponse.nextToken, paginationFunction: self.listDeployments(input:)) } @@ -157,24 +152,23 @@ extension ListDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeploymentsPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.Deployment]` -/// - Returns: `[GreengrassV2ClientTypes.Deployment]` extension PaginatorSequence where Input == ListDeploymentsInput, Output == ListDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeploymentsPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.Deployment]` + /// - Returns: `[GreengrassV2ClientTypes.Deployment]` public func deployments() async throws -> [GreengrassV2ClientTypes.Deployment] { return try await self.asyncCompactMap { item in item.deployments } } } - -/// Paginate over `[ListEffectiveDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEffectiveDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEffectiveDeploymentsOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListEffectiveDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEffectiveDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEffectiveDeploymentsOutputResponse` public func listEffectiveDeploymentsPaginated(input: ListEffectiveDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEffectiveDeploymentsInput.nextToken, outputKey: \ListEffectiveDeploymentsOutputResponse.nextToken, paginationFunction: self.listEffectiveDeployments(input:)) } @@ -189,24 +183,23 @@ extension ListEffectiveDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEffectiveDeploymentsPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.EffectiveDeployment]` -/// - Returns: `[GreengrassV2ClientTypes.EffectiveDeployment]` extension PaginatorSequence where Input == ListEffectiveDeploymentsInput, Output == ListEffectiveDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEffectiveDeploymentsPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.EffectiveDeployment]` + /// - Returns: `[GreengrassV2ClientTypes.EffectiveDeployment]` public func effectiveDeployments() async throws -> [GreengrassV2ClientTypes.EffectiveDeployment] { return try await self.asyncCompactMap { item in item.effectiveDeployments } } } - -/// Paginate over `[ListInstalledComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstalledComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstalledComponentsOutputResponse` extension GreengrassV2Client { + /// Paginate over `[ListInstalledComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstalledComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstalledComponentsOutputResponse` public func listInstalledComponentsPaginated(input: ListInstalledComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstalledComponentsInput.nextToken, outputKey: \ListInstalledComponentsOutputResponse.nextToken, paginationFunction: self.listInstalledComponents(input:)) } @@ -222,10 +215,10 @@ extension ListInstalledComponentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstalledComponentsPaginated` -/// to access the nested member `[GreengrassV2ClientTypes.InstalledComponent]` -/// - Returns: `[GreengrassV2ClientTypes.InstalledComponent]` extension PaginatorSequence where Input == ListInstalledComponentsInput, Output == ListInstalledComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstalledComponentsPaginated` + /// to access the nested member `[GreengrassV2ClientTypes.InstalledComponent]` + /// - Returns: `[GreengrassV2ClientTypes.InstalledComponent]` public func installedComponents() async throws -> [GreengrassV2ClientTypes.InstalledComponent] { return try await self.asyncCompactMap { item in item.installedComponents } } diff --git a/Sources/Services/AWSGuardDuty/Paginators.swift b/Sources/Services/AWSGuardDuty/Paginators.swift index 06269edc991..6f3aee6c9f3 100644 --- a/Sources/Services/AWSGuardDuty/Paginators.swift +++ b/Sources/Services/AWSGuardDuty/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeMalwareScansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMalwareScansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMalwareScansOutputResponse` extension GuardDutyClient { + /// Paginate over `[DescribeMalwareScansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMalwareScansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMalwareScansOutputResponse` public func describeMalwareScansPaginated(input: DescribeMalwareScansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMalwareScansInput.nextToken, outputKey: \DescribeMalwareScansOutputResponse.nextToken, paginationFunction: self.describeMalwareScans(input:)) } @@ -28,24 +27,23 @@ extension DescribeMalwareScansInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMalwareScansPaginated` -/// to access the nested member `[GuardDutyClientTypes.Scan]` -/// - Returns: `[GuardDutyClientTypes.Scan]` extension PaginatorSequence where Input == DescribeMalwareScansInput, Output == DescribeMalwareScansOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMalwareScansPaginated` + /// to access the nested member `[GuardDutyClientTypes.Scan]` + /// - Returns: `[GuardDutyClientTypes.Scan]` public func scans() async throws -> [GuardDutyClientTypes.Scan] { return try await self.asyncCompactMap { item in item.scans } } } - -/// Paginate over `[GetUsageStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUsageStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUsageStatisticsOutputResponse` extension GuardDutyClient { + /// Paginate over `[GetUsageStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUsageStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUsageStatisticsOutputResponse` public func getUsageStatisticsPaginated(input: GetUsageStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUsageStatisticsInput.nextToken, outputKey: \GetUsageStatisticsOutputResponse.nextToken, paginationFunction: self.getUsageStatistics(input:)) } @@ -62,16 +60,15 @@ extension GetUsageStatisticsInput: ClientRuntime.PaginateToken { usageStatisticType: self.usageStatisticType )} } - -/// Paginate over `[ListDetectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDetectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDetectorsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListDetectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDetectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDetectorsOutputResponse` public func listDetectorsPaginated(input: ListDetectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDetectorsInput.nextToken, outputKey: \ListDetectorsOutputResponse.nextToken, paginationFunction: self.listDetectors(input:)) } @@ -85,24 +82,23 @@ extension ListDetectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDetectorsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDetectorsInput, Output == ListDetectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDetectorsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func detectorIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.detectorIds } } } - -/// Paginate over `[ListFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` public func listFiltersPaginated(input: ListFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFiltersInput.nextToken, outputKey: \ListFiltersOutputResponse.nextToken, paginationFunction: self.listFilters(input:)) } @@ -117,24 +113,23 @@ extension ListFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFiltersInput, Output == ListFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func filterNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.filterNames } } } - -/// Paginate over `[ListFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` public func listFindingsPaginated(input: ListFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsInput.nextToken, outputKey: \ListFindingsOutputResponse.nextToken, paginationFunction: self.listFindings(input:)) } @@ -151,24 +146,23 @@ extension ListFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFindingsInput, Output == ListFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func findingIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.findingIds } } } - -/// Paginate over `[ListInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` public func listInvitationsPaginated(input: ListInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvitationsInput.nextToken, outputKey: \ListInvitationsOutputResponse.nextToken, paginationFunction: self.listInvitations(input:)) } @@ -182,24 +176,23 @@ extension ListInvitationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` -/// to access the nested member `[GuardDutyClientTypes.Invitation]` -/// - Returns: `[GuardDutyClientTypes.Invitation]` extension PaginatorSequence where Input == ListInvitationsInput, Output == ListInvitationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` + /// to access the nested member `[GuardDutyClientTypes.Invitation]` + /// - Returns: `[GuardDutyClientTypes.Invitation]` public func invitations() async throws -> [GuardDutyClientTypes.Invitation] { return try await self.asyncCompactMap { item in item.invitations } } } - -/// Paginate over `[ListIPSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIPSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIPSetsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListIPSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIPSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIPSetsOutputResponse` public func listIPSetsPaginated(input: ListIPSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIPSetsInput.nextToken, outputKey: \ListIPSetsOutputResponse.nextToken, paginationFunction: self.listIPSets(input:)) } @@ -214,24 +207,23 @@ extension ListIPSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIPSetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListIPSetsInput, Output == ListIPSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIPSetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func ipSetIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.ipSetIds } } } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -247,24 +239,23 @@ extension ListMembersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` -/// to access the nested member `[GuardDutyClientTypes.Member]` -/// - Returns: `[GuardDutyClientTypes.Member]` extension PaginatorSequence where Input == ListMembersInput, Output == ListMembersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` + /// to access the nested member `[GuardDutyClientTypes.Member]` + /// - Returns: `[GuardDutyClientTypes.Member]` public func members() async throws -> [GuardDutyClientTypes.Member] { return try await self.asyncCompactMap { item in item.members } } } - -/// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` public func listOrganizationAdminAccountsPaginated(input: ListOrganizationAdminAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationAdminAccountsInput.nextToken, outputKey: \ListOrganizationAdminAccountsOutputResponse.nextToken, paginationFunction: self.listOrganizationAdminAccounts(input:)) } @@ -278,24 +269,23 @@ extension ListOrganizationAdminAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` -/// to access the nested member `[GuardDutyClientTypes.AdminAccount]` -/// - Returns: `[GuardDutyClientTypes.AdminAccount]` extension PaginatorSequence where Input == ListOrganizationAdminAccountsInput, Output == ListOrganizationAdminAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` + /// to access the nested member `[GuardDutyClientTypes.AdminAccount]` + /// - Returns: `[GuardDutyClientTypes.AdminAccount]` public func adminAccounts() async throws -> [GuardDutyClientTypes.AdminAccount] { return try await self.asyncCompactMap { item in item.adminAccounts } } } - -/// Paginate over `[ListPublishingDestinationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPublishingDestinationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPublishingDestinationsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListPublishingDestinationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPublishingDestinationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPublishingDestinationsOutputResponse` public func listPublishingDestinationsPaginated(input: ListPublishingDestinationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPublishingDestinationsInput.nextToken, outputKey: \ListPublishingDestinationsOutputResponse.nextToken, paginationFunction: self.listPublishingDestinations(input:)) } @@ -309,16 +299,15 @@ extension ListPublishingDestinationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListThreatIntelSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThreatIntelSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThreatIntelSetsOutputResponse` extension GuardDutyClient { + /// Paginate over `[ListThreatIntelSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThreatIntelSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThreatIntelSetsOutputResponse` public func listThreatIntelSetsPaginated(input: ListThreatIntelSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThreatIntelSetsInput.nextToken, outputKey: \ListThreatIntelSetsOutputResponse.nextToken, paginationFunction: self.listThreatIntelSets(input:)) } @@ -333,10 +322,10 @@ extension ListThreatIntelSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThreatIntelSetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThreatIntelSetsInput, Output == ListThreatIntelSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThreatIntelSetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func threatIntelSetIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.threatIntelSetIds } } diff --git a/Sources/Services/AWSHealth/EndpointResolver.swift b/Sources/Services/AWSHealth/EndpointResolver.swift index 7cf30358046..c956521b8b1 100644 --- a/Sources/Services/AWSHealth/EndpointResolver.swift +++ b/Sources/Services/AWSHealth/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"health\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://global.health.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"health\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://health.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSHealth/Paginators.swift b/Sources/Services/AWSHealth/Paginators.swift index 39572008229..3198b4a5bc6 100644 --- a/Sources/Services/AWSHealth/Paginators.swift +++ b/Sources/Services/AWSHealth/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAffectedAccountsForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAffectedAccountsForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedAccountsForOrganizationOutputResponse` extension HealthClient { + /// Paginate over `[DescribeAffectedAccountsForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAffectedAccountsForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedAccountsForOrganizationOutputResponse` public func describeAffectedAccountsForOrganizationPaginated(input: DescribeAffectedAccountsForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAffectedAccountsForOrganizationInput.nextToken, outputKey: \DescribeAffectedAccountsForOrganizationOutputResponse.nextToken, paginationFunction: self.describeAffectedAccountsForOrganization(input:)) } @@ -26,24 +25,23 @@ extension DescribeAffectedAccountsForOrganizationInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAffectedAccountsForOrganizationPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == DescribeAffectedAccountsForOrganizationInput, Output == DescribeAffectedAccountsForOrganizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAffectedAccountsForOrganizationPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func affectedAccounts() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.affectedAccounts } } } - -/// Paginate over `[DescribeAffectedEntitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAffectedEntitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedEntitiesOutputResponse` extension HealthClient { + /// Paginate over `[DescribeAffectedEntitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAffectedEntitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedEntitiesOutputResponse` public func describeAffectedEntitiesPaginated(input: DescribeAffectedEntitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAffectedEntitiesInput.nextToken, outputKey: \DescribeAffectedEntitiesOutputResponse.nextToken, paginationFunction: self.describeAffectedEntities(input:)) } @@ -59,24 +57,23 @@ extension DescribeAffectedEntitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAffectedEntitiesPaginated` -/// to access the nested member `[HealthClientTypes.AffectedEntity]` -/// - Returns: `[HealthClientTypes.AffectedEntity]` extension PaginatorSequence where Input == DescribeAffectedEntitiesInput, Output == DescribeAffectedEntitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAffectedEntitiesPaginated` + /// to access the nested member `[HealthClientTypes.AffectedEntity]` + /// - Returns: `[HealthClientTypes.AffectedEntity]` public func entities() async throws -> [HealthClientTypes.AffectedEntity] { return try await self.asyncCompactMap { item in item.entities } } } - -/// Paginate over `[DescribeAffectedEntitiesForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAffectedEntitiesForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedEntitiesForOrganizationOutputResponse` extension HealthClient { + /// Paginate over `[DescribeAffectedEntitiesForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAffectedEntitiesForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAffectedEntitiesForOrganizationOutputResponse` public func describeAffectedEntitiesForOrganizationPaginated(input: DescribeAffectedEntitiesForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAffectedEntitiesForOrganizationInput.nextToken, outputKey: \DescribeAffectedEntitiesForOrganizationOutputResponse.nextToken, paginationFunction: self.describeAffectedEntitiesForOrganization(input:)) } @@ -92,24 +89,23 @@ extension DescribeAffectedEntitiesForOrganizationInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAffectedEntitiesForOrganizationPaginated` -/// to access the nested member `[HealthClientTypes.AffectedEntity]` -/// - Returns: `[HealthClientTypes.AffectedEntity]` extension PaginatorSequence where Input == DescribeAffectedEntitiesForOrganizationInput, Output == DescribeAffectedEntitiesForOrganizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAffectedEntitiesForOrganizationPaginated` + /// to access the nested member `[HealthClientTypes.AffectedEntity]` + /// - Returns: `[HealthClientTypes.AffectedEntity]` public func entities() async throws -> [HealthClientTypes.AffectedEntity] { return try await self.asyncCompactMap { item in item.entities } } } - -/// Paginate over `[DescribeEventAggregatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventAggregatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventAggregatesOutputResponse` extension HealthClient { + /// Paginate over `[DescribeEventAggregatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventAggregatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventAggregatesOutputResponse` public func describeEventAggregatesPaginated(input: DescribeEventAggregatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventAggregatesInput.nextToken, outputKey: \DescribeEventAggregatesOutputResponse.nextToken, paginationFunction: self.describeEventAggregates(input:)) } @@ -125,24 +121,23 @@ extension DescribeEventAggregatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventAggregatesPaginated` -/// to access the nested member `[HealthClientTypes.EventAggregate]` -/// - Returns: `[HealthClientTypes.EventAggregate]` extension PaginatorSequence where Input == DescribeEventAggregatesInput, Output == DescribeEventAggregatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventAggregatesPaginated` + /// to access the nested member `[HealthClientTypes.EventAggregate]` + /// - Returns: `[HealthClientTypes.EventAggregate]` public func eventAggregates() async throws -> [HealthClientTypes.EventAggregate] { return try await self.asyncCompactMap { item in item.eventAggregates } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension HealthClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.nextToken, outputKey: \DescribeEventsOutputResponse.nextToken, paginationFunction: self.describeEvents(input:)) } @@ -158,24 +153,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[HealthClientTypes.Event]` -/// - Returns: `[HealthClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[HealthClientTypes.Event]` + /// - Returns: `[HealthClientTypes.Event]` public func events() async throws -> [HealthClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventsForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsForOrganizationOutputResponse` extension HealthClient { + /// Paginate over `[DescribeEventsForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsForOrganizationOutputResponse` public func describeEventsForOrganizationPaginated(input: DescribeEventsForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsForOrganizationInput.nextToken, outputKey: \DescribeEventsForOrganizationOutputResponse.nextToken, paginationFunction: self.describeEventsForOrganization(input:)) } @@ -191,24 +185,23 @@ extension DescribeEventsForOrganizationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsForOrganizationPaginated` -/// to access the nested member `[HealthClientTypes.OrganizationEvent]` -/// - Returns: `[HealthClientTypes.OrganizationEvent]` extension PaginatorSequence where Input == DescribeEventsForOrganizationInput, Output == DescribeEventsForOrganizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsForOrganizationPaginated` + /// to access the nested member `[HealthClientTypes.OrganizationEvent]` + /// - Returns: `[HealthClientTypes.OrganizationEvent]` public func events() async throws -> [HealthClientTypes.OrganizationEvent] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventTypesOutputResponse` extension HealthClient { + /// Paginate over `[DescribeEventTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventTypesOutputResponse` public func describeEventTypesPaginated(input: DescribeEventTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventTypesInput.nextToken, outputKey: \DescribeEventTypesOutputResponse.nextToken, paginationFunction: self.describeEventTypes(input:)) } @@ -224,10 +217,10 @@ extension DescribeEventTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventTypesPaginated` -/// to access the nested member `[HealthClientTypes.EventType]` -/// - Returns: `[HealthClientTypes.EventType]` extension PaginatorSequence where Input == DescribeEventTypesInput, Output == DescribeEventTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventTypesPaginated` + /// to access the nested member `[HealthClientTypes.EventType]` + /// - Returns: `[HealthClientTypes.EventType]` public func eventTypes() async throws -> [HealthClientTypes.EventType] { return try await self.asyncCompactMap { item in item.eventTypes } } diff --git a/Sources/Services/AWSHealthLake/Paginators.swift b/Sources/Services/AWSHealthLake/Paginators.swift index e36474dfacb..befc95584d2 100644 --- a/Sources/Services/AWSHealthLake/Paginators.swift +++ b/Sources/Services/AWSHealthLake/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListFHIRDatastoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFHIRDatastoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFHIRDatastoresOutputResponse` extension HealthLakeClient { + /// Paginate over `[ListFHIRDatastoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFHIRDatastoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFHIRDatastoresOutputResponse` public func listFHIRDatastoresPaginated(input: ListFHIRDatastoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFHIRDatastoresInput.nextToken, outputKey: \ListFHIRDatastoresOutputResponse.nextToken, paginationFunction: self.listFHIRDatastores(input:)) } @@ -25,16 +24,15 @@ extension ListFHIRDatastoresInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFHIRExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFHIRExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFHIRExportJobsOutputResponse` extension HealthLakeClient { + /// Paginate over `[ListFHIRExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFHIRExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFHIRExportJobsOutputResponse` public func listFHIRExportJobsPaginated(input: ListFHIRExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFHIRExportJobsInput.nextToken, outputKey: \ListFHIRExportJobsOutputResponse.nextToken, paginationFunction: self.listFHIRExportJobs(input:)) } @@ -52,16 +50,15 @@ extension ListFHIRExportJobsInput: ClientRuntime.PaginateToken { submittedBefore: self.submittedBefore )} } - -/// Paginate over `[ListFHIRImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFHIRImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFHIRImportJobsOutputResponse` extension HealthLakeClient { + /// Paginate over `[ListFHIRImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFHIRImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFHIRImportJobsOutputResponse` public func listFHIRImportJobsPaginated(input: ListFHIRImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFHIRImportJobsInput.nextToken, outputKey: \ListFHIRImportJobsOutputResponse.nextToken, paginationFunction: self.listFHIRImportJobs(input:)) } diff --git a/Sources/Services/AWSHoneycode/Paginators.swift b/Sources/Services/AWSHoneycode/Paginators.swift index 8a572a82401..ca540171db0 100644 --- a/Sources/Services/AWSHoneycode/Paginators.swift +++ b/Sources/Services/AWSHoneycode/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListTableColumnsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTableColumnsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTableColumnsOutputResponse` extension HoneycodeClient { + /// Paginate over `[ListTableColumnsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTableColumnsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTableColumnsOutputResponse` public func listTableColumnsPaginated(input: ListTableColumnsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTableColumnsInput.nextToken, outputKey: \ListTableColumnsOutputResponse.nextToken, paginationFunction: self.listTableColumns(input:)) } @@ -25,16 +24,15 @@ extension ListTableColumnsInput: ClientRuntime.PaginateToken { workbookId: self.workbookId )} } - -/// Paginate over `[ListTableRowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTableRowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTableRowsOutputResponse` extension HoneycodeClient { + /// Paginate over `[ListTableRowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTableRowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTableRowsOutputResponse` public func listTableRowsPaginated(input: ListTableRowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTableRowsInput.nextToken, outputKey: \ListTableRowsOutputResponse.nextToken, paginationFunction: self.listTableRows(input:)) } @@ -50,16 +48,15 @@ extension ListTableRowsInput: ClientRuntime.PaginateToken { workbookId: self.workbookId )} } - -/// Paginate over `[ListTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` extension HoneycodeClient { + /// Paginate over `[ListTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` public func listTablesPaginated(input: ListTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTablesInput.nextToken, outputKey: \ListTablesOutputResponse.nextToken, paginationFunction: self.listTables(input:)) } @@ -73,16 +70,15 @@ extension ListTablesInput: ClientRuntime.PaginateToken { workbookId: self.workbookId )} } - -/// Paginate over `[QueryTableRowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[QueryTableRowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `QueryTableRowsOutputResponse` extension HoneycodeClient { + /// Paginate over `[QueryTableRowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[QueryTableRowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `QueryTableRowsOutputResponse` public func queryTableRowsPaginated(input: QueryTableRowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \QueryTableRowsInput.nextToken, outputKey: \QueryTableRowsOutputResponse.nextToken, paginationFunction: self.queryTableRows(input:)) } diff --git a/Sources/Services/AWSIAM/EndpointResolver.swift b/Sources/Services/AWSIAM/EndpointResolver.swift index dc30ce67675..6d281d0143c 100644 --- a/Sources/Services/AWSIAM/EndpointResolver.swift +++ b/Sources/Services/AWSIAM/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-b\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"iam\"]}],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"iam-govcloud\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://iam.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://iam.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"iam\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-b\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"iam\"]}],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://iam-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"iam-govcloud\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://iam.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://iam.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://iam.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"iam\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://iam.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSIAM/Paginators.swift b/Sources/Services/AWSIAM/Paginators.swift index b96df633c74..c9e4cccd704 100644 --- a/Sources/Services/AWSIAM/Paginators.swift +++ b/Sources/Services/AWSIAM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetAccountAuthorizationDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAccountAuthorizationDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAccountAuthorizationDetailsOutputResponse` extension IAMClient { + /// Paginate over `[GetAccountAuthorizationDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAccountAuthorizationDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAccountAuthorizationDetailsOutputResponse` public func getAccountAuthorizationDetailsPaginated(input: GetAccountAuthorizationDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAccountAuthorizationDetailsInput.marker, outputKey: \GetAccountAuthorizationDetailsOutputResponse.marker, paginationFunction: self.getAccountAuthorizationDetails(input:)) } @@ -25,16 +24,15 @@ extension GetAccountAuthorizationDetailsInput: ClientRuntime.PaginateToken { maxItems: self.maxItems )} } - -/// Paginate over `[GetGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetGroupOutputResponse` extension IAMClient { + /// Paginate over `[GetGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetGroupOutputResponse` public func getGroupPaginated(input: GetGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetGroupInput.marker, outputKey: \GetGroupOutputResponse.marker, paginationFunction: self.getGroup(input:)) } @@ -49,24 +47,23 @@ extension GetGroupInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getGroupPaginated` -/// to access the nested member `[IAMClientTypes.User]` -/// - Returns: `[IAMClientTypes.User]` extension PaginatorSequence where Input == GetGroupInput, Output == GetGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getGroupPaginated` + /// to access the nested member `[IAMClientTypes.User]` + /// - Returns: `[IAMClientTypes.User]` public func users() async throws -> [IAMClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } } - -/// Paginate over `[ListAccessKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessKeysOutputResponse` extension IAMClient { + /// Paginate over `[ListAccessKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessKeysOutputResponse` public func listAccessKeysPaginated(input: ListAccessKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessKeysInput.marker, outputKey: \ListAccessKeysOutputResponse.marker, paginationFunction: self.listAccessKeys(input:)) } @@ -81,24 +78,23 @@ extension ListAccessKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessKeysPaginated` -/// to access the nested member `[IAMClientTypes.AccessKeyMetadata]` -/// - Returns: `[IAMClientTypes.AccessKeyMetadata]` extension PaginatorSequence where Input == ListAccessKeysInput, Output == ListAccessKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessKeysPaginated` + /// to access the nested member `[IAMClientTypes.AccessKeyMetadata]` + /// - Returns: `[IAMClientTypes.AccessKeyMetadata]` public func accessKeyMetadata() async throws -> [IAMClientTypes.AccessKeyMetadata] { return try await self.asyncCompactMap { item in item.accessKeyMetadata } } } - -/// Paginate over `[ListAccountAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountAliasesOutputResponse` extension IAMClient { + /// Paginate over `[ListAccountAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountAliasesOutputResponse` public func listAccountAliasesPaginated(input: ListAccountAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountAliasesInput.marker, outputKey: \ListAccountAliasesOutputResponse.marker, paginationFunction: self.listAccountAliases(input:)) } @@ -112,24 +108,23 @@ extension ListAccountAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountAliasesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAccountAliasesInput, Output == ListAccountAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountAliasesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func accountAliases() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.accountAliases } } } - -/// Paginate over `[ListAttachedGroupPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedGroupPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedGroupPoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListAttachedGroupPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedGroupPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedGroupPoliciesOutputResponse` public func listAttachedGroupPoliciesPaginated(input: ListAttachedGroupPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedGroupPoliciesInput.marker, outputKey: \ListAttachedGroupPoliciesOutputResponse.marker, paginationFunction: self.listAttachedGroupPolicies(input:)) } @@ -145,24 +140,23 @@ extension ListAttachedGroupPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachedGroupPoliciesPaginated` -/// to access the nested member `[IAMClientTypes.AttachedPolicy]` -/// - Returns: `[IAMClientTypes.AttachedPolicy]` extension PaginatorSequence where Input == ListAttachedGroupPoliciesInput, Output == ListAttachedGroupPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachedGroupPoliciesPaginated` + /// to access the nested member `[IAMClientTypes.AttachedPolicy]` + /// - Returns: `[IAMClientTypes.AttachedPolicy]` public func attachedPolicies() async throws -> [IAMClientTypes.AttachedPolicy] { return try await self.asyncCompactMap { item in item.attachedPolicies } } } - -/// Paginate over `[ListAttachedRolePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedRolePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedRolePoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListAttachedRolePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedRolePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedRolePoliciesOutputResponse` public func listAttachedRolePoliciesPaginated(input: ListAttachedRolePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedRolePoliciesInput.marker, outputKey: \ListAttachedRolePoliciesOutputResponse.marker, paginationFunction: self.listAttachedRolePolicies(input:)) } @@ -178,24 +172,23 @@ extension ListAttachedRolePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachedRolePoliciesPaginated` -/// to access the nested member `[IAMClientTypes.AttachedPolicy]` -/// - Returns: `[IAMClientTypes.AttachedPolicy]` extension PaginatorSequence where Input == ListAttachedRolePoliciesInput, Output == ListAttachedRolePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachedRolePoliciesPaginated` + /// to access the nested member `[IAMClientTypes.AttachedPolicy]` + /// - Returns: `[IAMClientTypes.AttachedPolicy]` public func attachedPolicies() async throws -> [IAMClientTypes.AttachedPolicy] { return try await self.asyncCompactMap { item in item.attachedPolicies } } } - -/// Paginate over `[ListAttachedUserPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedUserPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedUserPoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListAttachedUserPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedUserPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedUserPoliciesOutputResponse` public func listAttachedUserPoliciesPaginated(input: ListAttachedUserPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedUserPoliciesInput.marker, outputKey: \ListAttachedUserPoliciesOutputResponse.marker, paginationFunction: self.listAttachedUserPolicies(input:)) } @@ -211,24 +204,23 @@ extension ListAttachedUserPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachedUserPoliciesPaginated` -/// to access the nested member `[IAMClientTypes.AttachedPolicy]` -/// - Returns: `[IAMClientTypes.AttachedPolicy]` extension PaginatorSequence where Input == ListAttachedUserPoliciesInput, Output == ListAttachedUserPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachedUserPoliciesPaginated` + /// to access the nested member `[IAMClientTypes.AttachedPolicy]` + /// - Returns: `[IAMClientTypes.AttachedPolicy]` public func attachedPolicies() async throws -> [IAMClientTypes.AttachedPolicy] { return try await self.asyncCompactMap { item in item.attachedPolicies } } } - -/// Paginate over `[ListEntitiesForPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntitiesForPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesForPolicyOutputResponse` extension IAMClient { + /// Paginate over `[ListEntitiesForPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntitiesForPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesForPolicyOutputResponse` public func listEntitiesForPolicyPaginated(input: ListEntitiesForPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntitiesForPolicyInput.marker, outputKey: \ListEntitiesForPolicyOutputResponse.marker, paginationFunction: self.listEntitiesForPolicy(input:)) } @@ -245,16 +237,15 @@ extension ListEntitiesForPolicyInput: ClientRuntime.PaginateToken { policyUsageFilter: self.policyUsageFilter )} } - -/// Paginate over `[ListGroupPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupPoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListGroupPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupPoliciesOutputResponse` public func listGroupPoliciesPaginated(input: ListGroupPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupPoliciesInput.marker, outputKey: \ListGroupPoliciesOutputResponse.marker, paginationFunction: self.listGroupPolicies(input:)) } @@ -269,24 +260,23 @@ extension ListGroupPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGroupPoliciesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListGroupPoliciesInput, Output == ListGroupPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupPoliciesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func policyNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.policyNames } } } - -/// Paginate over `[ListGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` extension IAMClient { + /// Paginate over `[ListGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` public func listGroupsPaginated(input: ListGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsInput.marker, outputKey: \ListGroupsOutputResponse.marker, paginationFunction: self.listGroups(input:)) } @@ -301,24 +291,23 @@ extension ListGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGroupsPaginated` -/// to access the nested member `[IAMClientTypes.Group]` -/// - Returns: `[IAMClientTypes.Group]` extension PaginatorSequence where Input == ListGroupsInput, Output == ListGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupsPaginated` + /// to access the nested member `[IAMClientTypes.Group]` + /// - Returns: `[IAMClientTypes.Group]` public func groups() async throws -> [IAMClientTypes.Group] { return try await self.asyncCompactMap { item in item.groups } } } - -/// Paginate over `[ListGroupsForUserOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsForUserInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsForUserOutputResponse` extension IAMClient { + /// Paginate over `[ListGroupsForUserOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsForUserInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsForUserOutputResponse` public func listGroupsForUserPaginated(input: ListGroupsForUserInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsForUserInput.marker, outputKey: \ListGroupsForUserOutputResponse.marker, paginationFunction: self.listGroupsForUser(input:)) } @@ -333,24 +322,23 @@ extension ListGroupsForUserInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGroupsForUserPaginated` -/// to access the nested member `[IAMClientTypes.Group]` -/// - Returns: `[IAMClientTypes.Group]` extension PaginatorSequence where Input == ListGroupsForUserInput, Output == ListGroupsForUserOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupsForUserPaginated` + /// to access the nested member `[IAMClientTypes.Group]` + /// - Returns: `[IAMClientTypes.Group]` public func groups() async throws -> [IAMClientTypes.Group] { return try await self.asyncCompactMap { item in item.groups } } } - -/// Paginate over `[ListInstanceProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceProfilesOutputResponse` extension IAMClient { + /// Paginate over `[ListInstanceProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceProfilesOutputResponse` public func listInstanceProfilesPaginated(input: ListInstanceProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceProfilesInput.marker, outputKey: \ListInstanceProfilesOutputResponse.marker, paginationFunction: self.listInstanceProfiles(input:)) } @@ -365,24 +353,23 @@ extension ListInstanceProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceProfilesPaginated` -/// to access the nested member `[IAMClientTypes.InstanceProfile]` -/// - Returns: `[IAMClientTypes.InstanceProfile]` extension PaginatorSequence where Input == ListInstanceProfilesInput, Output == ListInstanceProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceProfilesPaginated` + /// to access the nested member `[IAMClientTypes.InstanceProfile]` + /// - Returns: `[IAMClientTypes.InstanceProfile]` public func instanceProfiles() async throws -> [IAMClientTypes.InstanceProfile] { return try await self.asyncCompactMap { item in item.instanceProfiles } } } - -/// Paginate over `[ListInstanceProfilesForRoleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceProfilesForRoleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceProfilesForRoleOutputResponse` extension IAMClient { + /// Paginate over `[ListInstanceProfilesForRoleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceProfilesForRoleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceProfilesForRoleOutputResponse` public func listInstanceProfilesForRolePaginated(input: ListInstanceProfilesForRoleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceProfilesForRoleInput.marker, outputKey: \ListInstanceProfilesForRoleOutputResponse.marker, paginationFunction: self.listInstanceProfilesForRole(input:)) } @@ -397,24 +384,23 @@ extension ListInstanceProfilesForRoleInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstanceProfilesForRolePaginated` -/// to access the nested member `[IAMClientTypes.InstanceProfile]` -/// - Returns: `[IAMClientTypes.InstanceProfile]` extension PaginatorSequence where Input == ListInstanceProfilesForRoleInput, Output == ListInstanceProfilesForRoleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstanceProfilesForRolePaginated` + /// to access the nested member `[IAMClientTypes.InstanceProfile]` + /// - Returns: `[IAMClientTypes.InstanceProfile]` public func instanceProfiles() async throws -> [IAMClientTypes.InstanceProfile] { return try await self.asyncCompactMap { item in item.instanceProfiles } } } - -/// Paginate over `[ListMFADevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMFADevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMFADevicesOutputResponse` extension IAMClient { + /// Paginate over `[ListMFADevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMFADevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMFADevicesOutputResponse` public func listMFADevicesPaginated(input: ListMFADevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMFADevicesInput.marker, outputKey: \ListMFADevicesOutputResponse.marker, paginationFunction: self.listMFADevices(input:)) } @@ -429,24 +415,23 @@ extension ListMFADevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMFADevicesPaginated` -/// to access the nested member `[IAMClientTypes.MFADevice]` -/// - Returns: `[IAMClientTypes.MFADevice]` extension PaginatorSequence where Input == ListMFADevicesInput, Output == ListMFADevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMFADevicesPaginated` + /// to access the nested member `[IAMClientTypes.MFADevice]` + /// - Returns: `[IAMClientTypes.MFADevice]` public func mfaDevices() async throws -> [IAMClientTypes.MFADevice] { return try await self.asyncCompactMap { item in item.mfaDevices } } } - -/// Paginate over `[ListPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` public func listPoliciesPaginated(input: ListPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoliciesInput.marker, outputKey: \ListPoliciesOutputResponse.marker, paginationFunction: self.listPolicies(input:)) } @@ -464,24 +449,23 @@ extension ListPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` -/// to access the nested member `[IAMClientTypes.Policy]` -/// - Returns: `[IAMClientTypes.Policy]` extension PaginatorSequence where Input == ListPoliciesInput, Output == ListPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` + /// to access the nested member `[IAMClientTypes.Policy]` + /// - Returns: `[IAMClientTypes.Policy]` public func policies() async throws -> [IAMClientTypes.Policy] { return try await self.asyncCompactMap { item in item.policies } } } - -/// Paginate over `[ListPolicyVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPolicyVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPolicyVersionsOutputResponse` extension IAMClient { + /// Paginate over `[ListPolicyVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPolicyVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPolicyVersionsOutputResponse` public func listPolicyVersionsPaginated(input: ListPolicyVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPolicyVersionsInput.marker, outputKey: \ListPolicyVersionsOutputResponse.marker, paginationFunction: self.listPolicyVersions(input:)) } @@ -496,24 +480,23 @@ extension ListPolicyVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPolicyVersionsPaginated` -/// to access the nested member `[IAMClientTypes.PolicyVersion]` -/// - Returns: `[IAMClientTypes.PolicyVersion]` extension PaginatorSequence where Input == ListPolicyVersionsInput, Output == ListPolicyVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPolicyVersionsPaginated` + /// to access the nested member `[IAMClientTypes.PolicyVersion]` + /// - Returns: `[IAMClientTypes.PolicyVersion]` public func versions() async throws -> [IAMClientTypes.PolicyVersion] { return try await self.asyncCompactMap { item in item.versions } } } - -/// Paginate over `[ListRolePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRolePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRolePoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListRolePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRolePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRolePoliciesOutputResponse` public func listRolePoliciesPaginated(input: ListRolePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRolePoliciesInput.marker, outputKey: \ListRolePoliciesOutputResponse.marker, paginationFunction: self.listRolePolicies(input:)) } @@ -528,24 +511,23 @@ extension ListRolePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRolePoliciesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListRolePoliciesInput, Output == ListRolePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRolePoliciesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func policyNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.policyNames } } } - -/// Paginate over `[ListRolesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRolesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRolesOutputResponse` extension IAMClient { + /// Paginate over `[ListRolesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRolesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRolesOutputResponse` public func listRolesPaginated(input: ListRolesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRolesInput.marker, outputKey: \ListRolesOutputResponse.marker, paginationFunction: self.listRoles(input:)) } @@ -560,24 +542,23 @@ extension ListRolesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRolesPaginated` -/// to access the nested member `[IAMClientTypes.Role]` -/// - Returns: `[IAMClientTypes.Role]` extension PaginatorSequence where Input == ListRolesInput, Output == ListRolesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRolesPaginated` + /// to access the nested member `[IAMClientTypes.Role]` + /// - Returns: `[IAMClientTypes.Role]` public func roles() async throws -> [IAMClientTypes.Role] { return try await self.asyncCompactMap { item in item.roles } } } - -/// Paginate over `[ListServerCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServerCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServerCertificatesOutputResponse` extension IAMClient { + /// Paginate over `[ListServerCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServerCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServerCertificatesOutputResponse` public func listServerCertificatesPaginated(input: ListServerCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServerCertificatesInput.marker, outputKey: \ListServerCertificatesOutputResponse.marker, paginationFunction: self.listServerCertificates(input:)) } @@ -592,24 +573,23 @@ extension ListServerCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServerCertificatesPaginated` -/// to access the nested member `[IAMClientTypes.ServerCertificateMetadata]` -/// - Returns: `[IAMClientTypes.ServerCertificateMetadata]` extension PaginatorSequence where Input == ListServerCertificatesInput, Output == ListServerCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServerCertificatesPaginated` + /// to access the nested member `[IAMClientTypes.ServerCertificateMetadata]` + /// - Returns: `[IAMClientTypes.ServerCertificateMetadata]` public func serverCertificateMetadataList() async throws -> [IAMClientTypes.ServerCertificateMetadata] { return try await self.asyncCompactMap { item in item.serverCertificateMetadataList } } } - -/// Paginate over `[ListSigningCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSigningCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSigningCertificatesOutputResponse` extension IAMClient { + /// Paginate over `[ListSigningCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSigningCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSigningCertificatesOutputResponse` public func listSigningCertificatesPaginated(input: ListSigningCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSigningCertificatesInput.marker, outputKey: \ListSigningCertificatesOutputResponse.marker, paginationFunction: self.listSigningCertificates(input:)) } @@ -624,24 +604,23 @@ extension ListSigningCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSigningCertificatesPaginated` -/// to access the nested member `[IAMClientTypes.SigningCertificate]` -/// - Returns: `[IAMClientTypes.SigningCertificate]` extension PaginatorSequence where Input == ListSigningCertificatesInput, Output == ListSigningCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSigningCertificatesPaginated` + /// to access the nested member `[IAMClientTypes.SigningCertificate]` + /// - Returns: `[IAMClientTypes.SigningCertificate]` public func certificates() async throws -> [IAMClientTypes.SigningCertificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[ListSSHPublicKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSSHPublicKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSSHPublicKeysOutputResponse` extension IAMClient { + /// Paginate over `[ListSSHPublicKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSSHPublicKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSSHPublicKeysOutputResponse` public func listSSHPublicKeysPaginated(input: ListSSHPublicKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSSHPublicKeysInput.marker, outputKey: \ListSSHPublicKeysOutputResponse.marker, paginationFunction: self.listSSHPublicKeys(input:)) } @@ -656,24 +635,23 @@ extension ListSSHPublicKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSSHPublicKeysPaginated` -/// to access the nested member `[IAMClientTypes.SSHPublicKeyMetadata]` -/// - Returns: `[IAMClientTypes.SSHPublicKeyMetadata]` extension PaginatorSequence where Input == ListSSHPublicKeysInput, Output == ListSSHPublicKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSSHPublicKeysPaginated` + /// to access the nested member `[IAMClientTypes.SSHPublicKeyMetadata]` + /// - Returns: `[IAMClientTypes.SSHPublicKeyMetadata]` public func sshPublicKeys() async throws -> [IAMClientTypes.SSHPublicKeyMetadata] { return try await self.asyncCompactMap { item in item.sshPublicKeys } } } - -/// Paginate over `[ListUserPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserPoliciesOutputResponse` extension IAMClient { + /// Paginate over `[ListUserPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserPoliciesOutputResponse` public func listUserPoliciesPaginated(input: ListUserPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserPoliciesInput.marker, outputKey: \ListUserPoliciesOutputResponse.marker, paginationFunction: self.listUserPolicies(input:)) } @@ -688,24 +666,23 @@ extension ListUserPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserPoliciesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListUserPoliciesInput, Output == ListUserPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserPoliciesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func policyNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.policyNames } } } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension IAMClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.marker, outputKey: \ListUsersOutputResponse.marker, paginationFunction: self.listUsers(input:)) } @@ -720,24 +697,23 @@ extension ListUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` -/// to access the nested member `[IAMClientTypes.User]` -/// - Returns: `[IAMClientTypes.User]` extension PaginatorSequence where Input == ListUsersInput, Output == ListUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` + /// to access the nested member `[IAMClientTypes.User]` + /// - Returns: `[IAMClientTypes.User]` public func users() async throws -> [IAMClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } } - -/// Paginate over `[ListUserTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserTagsOutputResponse` extension IAMClient { + /// Paginate over `[ListUserTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserTagsOutputResponse` public func listUserTagsPaginated(input: ListUserTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserTagsInput.marker, outputKey: \ListUserTagsOutputResponse.marker, paginationFunction: self.listUserTags(input:)) } @@ -752,24 +728,23 @@ extension ListUserTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserTagsPaginated` -/// to access the nested member `[IAMClientTypes.Tag]` -/// - Returns: `[IAMClientTypes.Tag]` extension PaginatorSequence where Input == ListUserTagsInput, Output == ListUserTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserTagsPaginated` + /// to access the nested member `[IAMClientTypes.Tag]` + /// - Returns: `[IAMClientTypes.Tag]` public func tags() async throws -> [IAMClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListVirtualMFADevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVirtualMFADevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVirtualMFADevicesOutputResponse` extension IAMClient { + /// Paginate over `[ListVirtualMFADevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVirtualMFADevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVirtualMFADevicesOutputResponse` public func listVirtualMFADevicesPaginated(input: ListVirtualMFADevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVirtualMFADevicesInput.marker, outputKey: \ListVirtualMFADevicesOutputResponse.marker, paginationFunction: self.listVirtualMFADevices(input:)) } @@ -784,24 +759,23 @@ extension ListVirtualMFADevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listVirtualMFADevicesPaginated` -/// to access the nested member `[IAMClientTypes.VirtualMFADevice]` -/// - Returns: `[IAMClientTypes.VirtualMFADevice]` extension PaginatorSequence where Input == ListVirtualMFADevicesInput, Output == ListVirtualMFADevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listVirtualMFADevicesPaginated` + /// to access the nested member `[IAMClientTypes.VirtualMFADevice]` + /// - Returns: `[IAMClientTypes.VirtualMFADevice]` public func virtualMFADevices() async throws -> [IAMClientTypes.VirtualMFADevice] { return try await self.asyncCompactMap { item in item.virtualMFADevices } } } - -/// Paginate over `[SimulateCustomPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SimulateCustomPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SimulateCustomPolicyOutputResponse` extension IAMClient { + /// Paginate over `[SimulateCustomPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SimulateCustomPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SimulateCustomPolicyOutputResponse` public func simulateCustomPolicyPaginated(input: SimulateCustomPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SimulateCustomPolicyInput.marker, outputKey: \SimulateCustomPolicyOutputResponse.marker, paginationFunction: self.simulateCustomPolicy(input:)) } @@ -824,24 +798,23 @@ extension SimulateCustomPolicyInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `simulateCustomPolicyPaginated` -/// to access the nested member `[IAMClientTypes.EvaluationResult]` -/// - Returns: `[IAMClientTypes.EvaluationResult]` extension PaginatorSequence where Input == SimulateCustomPolicyInput, Output == SimulateCustomPolicyOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `simulateCustomPolicyPaginated` + /// to access the nested member `[IAMClientTypes.EvaluationResult]` + /// - Returns: `[IAMClientTypes.EvaluationResult]` public func evaluationResults() async throws -> [IAMClientTypes.EvaluationResult] { return try await self.asyncCompactMap { item in item.evaluationResults } } } - -/// Paginate over `[SimulatePrincipalPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SimulatePrincipalPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SimulatePrincipalPolicyOutputResponse` extension IAMClient { + /// Paginate over `[SimulatePrincipalPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SimulatePrincipalPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SimulatePrincipalPolicyOutputResponse` public func simulatePrincipalPolicyPaginated(input: SimulatePrincipalPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SimulatePrincipalPolicyInput.marker, outputKey: \SimulatePrincipalPolicyOutputResponse.marker, paginationFunction: self.simulatePrincipalPolicy(input:)) } @@ -865,10 +838,10 @@ extension SimulatePrincipalPolicyInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `simulatePrincipalPolicyPaginated` -/// to access the nested member `[IAMClientTypes.EvaluationResult]` -/// - Returns: `[IAMClientTypes.EvaluationResult]` extension PaginatorSequence where Input == SimulatePrincipalPolicyInput, Output == SimulatePrincipalPolicyOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `simulatePrincipalPolicyPaginated` + /// to access the nested member `[IAMClientTypes.EvaluationResult]` + /// - Returns: `[IAMClientTypes.EvaluationResult]` public func evaluationResults() async throws -> [IAMClientTypes.EvaluationResult] { return try await self.asyncCompactMap { item in item.evaluationResults } } diff --git a/Sources/Services/AWSIdentitystore/Paginators.swift b/Sources/Services/AWSIdentitystore/Paginators.swift index 8e1e86aa9e3..f6b55485258 100644 --- a/Sources/Services/AWSIdentitystore/Paginators.swift +++ b/Sources/Services/AWSIdentitystore/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListGroupMembershipsForMemberOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupMembershipsForMemberInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupMembershipsForMemberOutputResponse` extension IdentitystoreClient { + /// Paginate over `[ListGroupMembershipsForMemberOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupMembershipsForMemberInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupMembershipsForMemberOutputResponse` public func listGroupMembershipsForMemberPaginated(input: ListGroupMembershipsForMemberInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupMembershipsForMemberInput.nextToken, outputKey: \ListGroupMembershipsForMemberOutputResponse.nextToken, paginationFunction: self.listGroupMembershipsForMember(input:)) } @@ -27,10 +26,10 @@ extension ListGroupMembershipsForMemberInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGroupMembershipsForMemberPaginated` -/// to access the nested member `[IdentitystoreClientTypes.GroupMembership]` -/// - Returns: `[IdentitystoreClientTypes.GroupMembership]` extension PaginatorSequence where Input == ListGroupMembershipsForMemberInput, Output == ListGroupMembershipsForMemberOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupMembershipsForMemberPaginated` + /// to access the nested member `[IdentitystoreClientTypes.GroupMembership]` + /// - Returns: `[IdentitystoreClientTypes.GroupMembership]` public func groupMemberships() async throws -> [IdentitystoreClientTypes.GroupMembership] { return try await self.asyncCompactMap { item in item.groupMemberships } } diff --git a/Sources/Services/AWSImagebuilder/EndpointResolver.swift b/Sources/Services/AWSImagebuilder/EndpointResolver.swift index d69d9d78032..c41b89a7b16 100644 --- a/Sources/Services/AWSImagebuilder/EndpointResolver.swift +++ b/Sources/Services/AWSImagebuilder/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://imagebuilder.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift b/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift index 2835235b11e..85e23289d39 100644 --- a/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift +++ b/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift @@ -232,7 +232,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -279,7 +282,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -322,7 +328,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -365,7 +374,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -408,7 +420,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -451,7 +466,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -494,7 +512,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -537,7 +558,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -572,7 +596,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteComponent") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -605,7 +632,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteContainerRecipe") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -638,7 +668,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDistributionConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -677,7 +710,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -710,7 +746,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteImagePipeline") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -743,7 +782,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteImageRecipe") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -776,7 +818,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteInfrastructureConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -809,7 +854,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getComponent") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -842,7 +890,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getComponentPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -875,7 +926,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerRecipe") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -908,7 +962,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerRecipePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -941,7 +998,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDistributionConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -974,7 +1034,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1007,7 +1070,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getImagePipeline") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1040,7 +1106,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getImagePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1073,7 +1142,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getImageRecipe") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1106,7 +1178,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getImageRecipePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1139,7 +1214,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInfrastructureConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1180,7 +1258,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1223,7 +1304,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1258,7 +1342,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listComponentBuildVersions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1274,7 +1361,7 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { return result } - /// Returns the list of component build versions for the specified semantic version. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. + /// Returns the list of components that can be filtered by name, or by using the listed filters to streamline results. Newly created components can take up to two minutes to appear in the ListComponents API Results. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. public func listComponents(input: ListComponentsInput) async throws -> ListComponentsOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1293,7 +1380,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listComponents") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1328,7 +1418,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listContainerRecipes") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1363,7 +1456,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listDistributionConfigurations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1398,7 +1494,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImageBuildVersions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1433,7 +1532,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImagePackages") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1468,7 +1570,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImagePipelineImages") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1503,7 +1608,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImagePipelines") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1538,7 +1646,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImageRecipes") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1554,7 +1665,7 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { return result } - /// Returns the list of images that you have access to. + /// Returns the list of images that you have access to. Newly created images can take up to two minutes to appear in the ListImages API Results. public func listImages(input: ListImagesInput) async throws -> ListImagesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1573,7 +1684,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listImages") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1608,7 +1722,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listInfrastructureConfigurations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1643,7 +1760,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1675,7 +1795,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "putComponentPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1710,7 +1833,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "putContainerRecipePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1745,7 +1871,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "putImagePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1780,7 +1909,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "putImageRecipePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1823,7 +1955,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1858,7 +1993,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1893,7 +2031,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1934,7 +2075,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1977,7 +2121,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2020,7 +2167,10 @@ extension ImagebuilderClient: ImagebuilderClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift b/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift index 05a45e73cb5..65037552c57 100644 --- a/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift +++ b/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift @@ -73,7 +73,7 @@ public protocol ImagebuilderClientProtocol { func importVmImage(input: ImportVmImageInput) async throws -> ImportVmImageOutputResponse /// Returns the list of component build versions for the specified semantic version. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. func listComponentBuildVersions(input: ListComponentBuildVersionsInput) async throws -> ListComponentBuildVersionsOutputResponse - /// Returns the list of component build versions for the specified semantic version. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. + /// Returns the list of components that can be filtered by name, or by using the listed filters to streamline results. Newly created components can take up to two minutes to appear in the ListComponents API Results. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. func listComponents(input: ListComponentsInput) async throws -> ListComponentsOutputResponse /// Returns a list of container recipes. func listContainerRecipes(input: ListContainerRecipesInput) async throws -> ListContainerRecipesOutputResponse @@ -89,7 +89,7 @@ public protocol ImagebuilderClientProtocol { func listImagePipelines(input: ListImagePipelinesInput) async throws -> ListImagePipelinesOutputResponse /// Returns a list of image recipes. func listImageRecipes(input: ListImageRecipesInput) async throws -> ListImageRecipesOutputResponse - /// Returns the list of images that you have access to. + /// Returns the list of images that you have access to. Newly created images can take up to two minutes to appear in the ListImages API Results. func listImages(input: ListImagesInput) async throws -> ListImagesOutputResponse /// Returns a list of infrastructure configurations. func listInfrastructureConfigurations(input: ListInfrastructureConfigurationsInput) async throws -> ListInfrastructureConfigurationsOutputResponse diff --git a/Sources/Services/AWSImagebuilder/Paginators.swift b/Sources/Services/AWSImagebuilder/Paginators.swift index 2592455ad23..5edcd0ed573 100644 --- a/Sources/Services/AWSImagebuilder/Paginators.swift +++ b/Sources/Services/AWSImagebuilder/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListComponentBuildVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentBuildVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentBuildVersionsOutputResponse` extension ImagebuilderClient { + /// Paginate over `[ListComponentBuildVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentBuildVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentBuildVersionsOutputResponse` public func listComponentBuildVersionsPaginated(input: ListComponentBuildVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentBuildVersionsInput.nextToken, outputKey: \ListComponentBuildVersionsOutputResponse.nextToken, paginationFunction: self.listComponentBuildVersions(input:)) } @@ -26,15 +25,23 @@ extension ListComponentBuildVersionsInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` +extension PaginatorSequence where Input == ListComponentBuildVersionsInput, Output == ListComponentBuildVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComponentBuildVersionsPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ComponentSummary]` + /// - Returns: `[ImagebuilderClientTypes.ComponentSummary]` + public func componentSummaryList() async throws -> [ImagebuilderClientTypes.ComponentSummary] { + return try await self.asyncCompactMap { item in item.componentSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` public func listComponentsPaginated(input: ListComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentsInput.nextToken, outputKey: \ListComponentsOutputResponse.nextToken, paginationFunction: self.listComponents(input:)) } @@ -51,15 +58,23 @@ extension ListComponentsInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListContainerRecipesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContainerRecipesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContainerRecipesOutputResponse` +extension PaginatorSequence where Input == ListComponentsInput, Output == ListComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComponentsPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ComponentVersion]` + /// - Returns: `[ImagebuilderClientTypes.ComponentVersion]` + public func componentVersionList() async throws -> [ImagebuilderClientTypes.ComponentVersion] { + return try await self.asyncCompactMap { item in item.componentVersionList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListContainerRecipesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContainerRecipesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContainerRecipesOutputResponse` public func listContainerRecipesPaginated(input: ListContainerRecipesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContainerRecipesInput.nextToken, outputKey: \ListContainerRecipesOutputResponse.nextToken, paginationFunction: self.listContainerRecipes(input:)) } @@ -75,15 +90,23 @@ extension ListContainerRecipesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListDistributionConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDistributionConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDistributionConfigurationsOutputResponse` +extension PaginatorSequence where Input == ListContainerRecipesInput, Output == ListContainerRecipesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContainerRecipesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ContainerRecipeSummary]` + /// - Returns: `[ImagebuilderClientTypes.ContainerRecipeSummary]` + public func containerRecipeSummaryList() async throws -> [ImagebuilderClientTypes.ContainerRecipeSummary] { + return try await self.asyncCompactMap { item in item.containerRecipeSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListDistributionConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDistributionConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDistributionConfigurationsOutputResponse` public func listDistributionConfigurationsPaginated(input: ListDistributionConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDistributionConfigurationsInput.nextToken, outputKey: \ListDistributionConfigurationsOutputResponse.nextToken, paginationFunction: self.listDistributionConfigurations(input:)) } @@ -98,15 +121,23 @@ extension ListDistributionConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImageBuildVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImageBuildVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImageBuildVersionsOutputResponse` +extension PaginatorSequence where Input == ListDistributionConfigurationsInput, Output == ListDistributionConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDistributionConfigurationsPaginated` + /// to access the nested member `[ImagebuilderClientTypes.DistributionConfigurationSummary]` + /// - Returns: `[ImagebuilderClientTypes.DistributionConfigurationSummary]` + public func distributionConfigurationSummaryList() async throws -> [ImagebuilderClientTypes.DistributionConfigurationSummary] { + return try await self.asyncCompactMap { item in item.distributionConfigurationSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImageBuildVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImageBuildVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImageBuildVersionsOutputResponse` public func listImageBuildVersionsPaginated(input: ListImageBuildVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImageBuildVersionsInput.nextToken, outputKey: \ListImageBuildVersionsOutputResponse.nextToken, paginationFunction: self.listImageBuildVersions(input:)) } @@ -122,15 +153,23 @@ extension ListImageBuildVersionsInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImagePackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagePackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagePackagesOutputResponse` +extension PaginatorSequence where Input == ListImageBuildVersionsInput, Output == ListImageBuildVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImageBuildVersionsPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImageSummary]` + /// - Returns: `[ImagebuilderClientTypes.ImageSummary]` + public func imageSummaryList() async throws -> [ImagebuilderClientTypes.ImageSummary] { + return try await self.asyncCompactMap { item in item.imageSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImagePackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagePackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagePackagesOutputResponse` public func listImagePackagesPaginated(input: ListImagePackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagePackagesInput.nextToken, outputKey: \ListImagePackagesOutputResponse.nextToken, paginationFunction: self.listImagePackages(input:)) } @@ -145,15 +184,23 @@ extension ListImagePackagesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImagePipelineImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagePipelineImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagePipelineImagesOutputResponse` +extension PaginatorSequence where Input == ListImagePackagesInput, Output == ListImagePackagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagePackagesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImagePackage]` + /// - Returns: `[ImagebuilderClientTypes.ImagePackage]` + public func imagePackageList() async throws -> [ImagebuilderClientTypes.ImagePackage] { + return try await self.asyncCompactMap { item in item.imagePackageList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImagePipelineImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagePipelineImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagePipelineImagesOutputResponse` public func listImagePipelineImagesPaginated(input: ListImagePipelineImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagePipelineImagesInput.nextToken, outputKey: \ListImagePipelineImagesOutputResponse.nextToken, paginationFunction: self.listImagePipelineImages(input:)) } @@ -169,15 +216,23 @@ extension ListImagePipelineImagesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImagePipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagePipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagePipelinesOutputResponse` +extension PaginatorSequence where Input == ListImagePipelineImagesInput, Output == ListImagePipelineImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagePipelineImagesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImageSummary]` + /// - Returns: `[ImagebuilderClientTypes.ImageSummary]` + public func imageSummaryList() async throws -> [ImagebuilderClientTypes.ImageSummary] { + return try await self.asyncCompactMap { item in item.imageSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImagePipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagePipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagePipelinesOutputResponse` public func listImagePipelinesPaginated(input: ListImagePipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagePipelinesInput.nextToken, outputKey: \ListImagePipelinesOutputResponse.nextToken, paginationFunction: self.listImagePipelines(input:)) } @@ -192,15 +247,23 @@ extension ListImagePipelinesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImageRecipesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImageRecipesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImageRecipesOutputResponse` +extension PaginatorSequence where Input == ListImagePipelinesInput, Output == ListImagePipelinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagePipelinesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImagePipeline]` + /// - Returns: `[ImagebuilderClientTypes.ImagePipeline]` + public func imagePipelineList() async throws -> [ImagebuilderClientTypes.ImagePipeline] { + return try await self.asyncCompactMap { item in item.imagePipelineList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImageRecipesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImageRecipesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImageRecipesOutputResponse` public func listImageRecipesPaginated(input: ListImageRecipesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImageRecipesInput.nextToken, outputKey: \ListImageRecipesOutputResponse.nextToken, paginationFunction: self.listImageRecipes(input:)) } @@ -216,15 +279,23 @@ extension ListImageRecipesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` +extension PaginatorSequence where Input == ListImageRecipesInput, Output == ListImageRecipesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImageRecipesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImageRecipeSummary]` + /// - Returns: `[ImagebuilderClientTypes.ImageRecipeSummary]` + public func imageRecipeSummaryList() async throws -> [ImagebuilderClientTypes.ImageRecipeSummary] { + return try await self.asyncCompactMap { item in item.imageRecipeSummaryList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` public func listImagesPaginated(input: ListImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagesInput.nextToken, outputKey: \ListImagesOutputResponse.nextToken, paginationFunction: self.listImages(input:)) } @@ -242,15 +313,23 @@ extension ListImagesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListInfrastructureConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInfrastructureConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInfrastructureConfigurationsOutputResponse` +extension PaginatorSequence where Input == ListImagesInput, Output == ListImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagesPaginated` + /// to access the nested member `[ImagebuilderClientTypes.ImageVersion]` + /// - Returns: `[ImagebuilderClientTypes.ImageVersion]` + public func imageVersionList() async throws -> [ImagebuilderClientTypes.ImageVersion] { + return try await self.asyncCompactMap { item in item.imageVersionList } + } +} extension ImagebuilderClient { + /// Paginate over `[ListInfrastructureConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInfrastructureConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInfrastructureConfigurationsOutputResponse` public func listInfrastructureConfigurationsPaginated(input: ListInfrastructureConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInfrastructureConfigurationsInput.nextToken, outputKey: \ListInfrastructureConfigurationsOutputResponse.nextToken, paginationFunction: self.listInfrastructureConfigurations(input:)) } @@ -264,3 +343,12 @@ extension ListInfrastructureConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } + +extension PaginatorSequence where Input == ListInfrastructureConfigurationsInput, Output == ListInfrastructureConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInfrastructureConfigurationsPaginated` + /// to access the nested member `[ImagebuilderClientTypes.InfrastructureConfigurationSummary]` + /// - Returns: `[ImagebuilderClientTypes.InfrastructureConfigurationSummary]` + public func infrastructureConfigurationSummaryList() async throws -> [ImagebuilderClientTypes.InfrastructureConfigurationSummary] { + return try await self.asyncCompactMap { item in item.infrastructureConfigurationSummaryList } + } +} diff --git a/Sources/Services/AWSImagebuilder/models/Models.swift b/Sources/Services/AWSImagebuilder/models/Models.swift index 4fd6a032f69..6ca3a1f99ce 100644 --- a/Sources/Services/AWSImagebuilder/models/Models.swift +++ b/Sources/Services/AWSImagebuilder/models/Models.swift @@ -28,7 +28,7 @@ extension ImagebuilderClientTypes.AdditionalInstanceConfiguration: Swift.Codable } extension ImagebuilderClientTypes { - /// In addition to your infrastruction configuration, these settings provide an extra layer of control over your build instances. For instances where Image Builder installs the Systems Manager agent, you can choose whether to keep it for the AMI that you create. You can also specify commands to run on launch for all of your build instances. + /// In addition to your infrastructure configuration, these settings provide an extra layer of control over your build instances. You can also specify commands to run on launch for all of your build instances. Image Builder does not automatically install the Systems Manager agent on Windows instances. If your base image includes the Systems Manager agent, then the AMI that you create will also include the agent. For Linux instances, if the base image does not already include the Systems Manager agent, Image Builder installs it. For Linux instances where Image Builder installs the Systems Manager agent, you can choose whether to keep it for the AMI that you create. public struct AdditionalInstanceConfiguration: Swift.Equatable { /// Contains settings for the Systems Manager agent on your build instance. public var systemsManagerAgent: ImagebuilderClientTypes.SystemsManagerAgent? @@ -548,9 +548,11 @@ extension ImagebuilderClientTypes.Component: Swift.Codable { case encrypted case kmsKeyId case name + case obfuscate case owner case parameters case platform + case publisher case state case supportedOsVersions case tags @@ -584,6 +586,9 @@ extension ImagebuilderClientTypes.Component: Swift.Codable { if let name = self.name { try encodeContainer.encode(name, forKey: .name) } + if obfuscate != false { + try encodeContainer.encode(obfuscate, forKey: .obfuscate) + } if let owner = self.owner { try encodeContainer.encode(owner, forKey: .owner) } @@ -596,6 +601,9 @@ extension ImagebuilderClientTypes.Component: Swift.Codable { if let platform = self.platform { try encodeContainer.encode(platform.rawValue, forKey: .platform) } + if let publisher = self.publisher { + try encodeContainer.encode(publisher, forKey: .publisher) + } if let state = self.state { try encodeContainer.encode(state, forKey: .state) } @@ -680,6 +688,10 @@ extension ImagebuilderClientTypes.Component: Swift.Codable { } } tags = tagsDecoded0 + let publisherDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .publisher) + publisher = publisherDecoded + let obfuscateDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .obfuscate) ?? false + obfuscate = obfuscateDecoded } } @@ -692,7 +704,7 @@ extension ImagebuilderClientTypes { public var changeDescription: Swift.String? /// Component data contains the YAML document content for the component. public var data: Swift.String? - /// The date that the component was created. + /// The date that Image Builder created the component. public var dateCreated: Swift.String? /// The description of the component. public var description: Swift.String? @@ -702,19 +714,23 @@ extension ImagebuilderClientTypes { public var kmsKeyId: Swift.String? /// The name of the component. public var name: Swift.String? + /// Indicates whether component source is hidden from view in the console, and from component detail results for API, CLI, or SDK operations. + public var obfuscate: Swift.Bool /// The owner of the component. public var owner: Swift.String? - /// Contains parameter details for each of the parameters that are defined for the component. + /// Contains parameter details for each of the parameters that the component document defined for the component. public var parameters: [ImagebuilderClientTypes.ComponentParameterDetail]? - /// The platform of the component. + /// The operating system platform of the component. public var platform: ImagebuilderClientTypes.Platform? + /// Contains the name of the publisher if this is a third-party component. Otherwise, this property is empty. + public var publisher: Swift.String? /// Describes the current status of the component. This is used for components that are no longer active. public var state: ImagebuilderClientTypes.ComponentState? - /// The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation. + /// The operating system (OS) version supported by the component. If the OS information is available, Image Builder performs a prefix match against the base image OS version during image recipe creation. public var supportedOsVersions: [Swift.String]? - /// The tags associated with the component. + /// The tags that apply to the component. public var tags: [Swift.String:Swift.String]? - /// The type of the component denotes whether the component is used to build the image or only to test it. + /// The component type specifies whether Image Builder uses the component to build the image or only to test it. public var type: ImagebuilderClientTypes.ComponentType? /// The version of the component. public var version: Swift.String? @@ -728,9 +744,11 @@ extension ImagebuilderClientTypes { encrypted: Swift.Bool? = nil, kmsKeyId: Swift.String? = nil, name: Swift.String? = nil, + obfuscate: Swift.Bool = false, owner: Swift.String? = nil, parameters: [ImagebuilderClientTypes.ComponentParameterDetail]? = nil, platform: ImagebuilderClientTypes.Platform? = nil, + publisher: Swift.String? = nil, state: ImagebuilderClientTypes.ComponentState? = nil, supportedOsVersions: [Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, @@ -746,9 +764,11 @@ extension ImagebuilderClientTypes { self.encrypted = encrypted self.kmsKeyId = kmsKeyId self.name = name + self.obfuscate = obfuscate self.owner = owner self.parameters = parameters self.platform = platform + self.publisher = publisher self.state = state self.supportedOsVersions = supportedOsVersions self.tags = tags @@ -802,7 +822,7 @@ extension ImagebuilderClientTypes { /// The Amazon Resource Name (ARN) of the component. /// This member is required. public var componentArn: Swift.String? - /// A group of parameter settings that are used to configure the component for a specific recipe. + /// A group of parameter settings that Image Builder uses to configure the component for a specific recipe. public var parameters: [ImagebuilderClientTypes.ComponentParameter]? public init ( @@ -1065,8 +1085,10 @@ extension ImagebuilderClientTypes.ComponentSummary: Swift.Codable { case dateCreated case description case name + case obfuscate case owner case platform + case publisher case state case supportedOsVersions case tags @@ -1091,12 +1113,18 @@ extension ImagebuilderClientTypes.ComponentSummary: Swift.Codable { if let name = self.name { try encodeContainer.encode(name, forKey: .name) } + if obfuscate != false { + try encodeContainer.encode(obfuscate, forKey: .obfuscate) + } if let owner = self.owner { try encodeContainer.encode(owner, forKey: .owner) } if let platform = self.platform { try encodeContainer.encode(platform.rawValue, forKey: .platform) } + if let publisher = self.publisher { + try encodeContainer.encode(publisher, forKey: .publisher) + } if let state = self.state { try encodeContainer.encode(state, forKey: .state) } @@ -1164,6 +1192,10 @@ extension ImagebuilderClientTypes.ComponentSummary: Swift.Codable { } } tags = tagsDecoded0 + let publisherDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .publisher) + publisher = publisherDecoded + let obfuscateDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .obfuscate) ?? false + obfuscate = obfuscateDecoded } } @@ -1172,25 +1204,29 @@ extension ImagebuilderClientTypes { public struct ComponentSummary: Swift.Equatable { /// The Amazon Resource Name (ARN) of the component. public var arn: Swift.String? - /// The change description of the component. + /// The change description for the current version of the component. public var changeDescription: Swift.String? - /// The date that the component was created. + /// The original creation date of the component. public var dateCreated: Swift.String? /// The description of the component. public var description: Swift.String? /// The name of the component. public var name: Swift.String? + /// Indicates whether component source is hidden from view in the console, and from component detail results for API, CLI, or SDK operations. + public var obfuscate: Swift.Bool /// The owner of the component. public var owner: Swift.String? - /// The platform of the component. + /// The operating system platform of the component. public var platform: ImagebuilderClientTypes.Platform? + /// Contains the name of the publisher if this is a third-party component. Otherwise, this property is empty. + public var publisher: Swift.String? /// Describes the current status of the component. public var state: ImagebuilderClientTypes.ComponentState? - /// The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation. + /// The operating system (OS) version that the component supports. If the OS information is available, Image Builder performs a prefix match against the base image OS version during image recipe creation. public var supportedOsVersions: [Swift.String]? - /// The tags associated with the component. + /// The tags that apply to the component. public var tags: [Swift.String:Swift.String]? - /// The type of the component denotes whether the component is used to build the image or only to test it. + /// The component type specifies whether Image Builder uses the component to build the image or only to test it. public var type: ImagebuilderClientTypes.ComponentType? /// The version of the component. public var version: Swift.String? @@ -1201,8 +1237,10 @@ extension ImagebuilderClientTypes { dateCreated: Swift.String? = nil, description: Swift.String? = nil, name: Swift.String? = nil, + obfuscate: Swift.Bool = false, owner: Swift.String? = nil, platform: ImagebuilderClientTypes.Platform? = nil, + publisher: Swift.String? = nil, state: ImagebuilderClientTypes.ComponentState? = nil, supportedOsVersions: [Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, @@ -1215,8 +1253,10 @@ extension ImagebuilderClientTypes { self.dateCreated = dateCreated self.description = description self.name = name + self.obfuscate = obfuscate self.owner = owner self.platform = platform + self.publisher = publisher self.state = state self.supportedOsVersions = supportedOsVersions self.tags = tags @@ -1667,7 +1707,7 @@ extension ImagebuilderClientTypes { /// /// * Build version ARNs have all four nodes, and point to a specific build for a specific version of an object. public var arn: Swift.String? - /// Components for build and test that are included in the container recipe. + /// Build and test components that are included in the container recipe. Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination. public var components: [ImagebuilderClientTypes.ComponentConfiguration]? /// Specifies the type of container, such as Docker. public var containerType: ImagebuilderClientTypes.ContainerType? @@ -1990,14 +2030,14 @@ public struct CreateComponentInput: Swift.Equatable { public var clientToken: Swift.String? /// Component data contains inline YAML document content for the component. Alternatively, you can specify the uri of a YAML document file stored in Amazon S3. However, you cannot specify both properties. public var data: Swift.String? - /// The description of the component. Describes the contents of the component. + /// Describes the contents of the component. public var description: Swift.String? - /// The ID of the KMS key that should be used to encrypt this component. + /// The ID of the KMS key that is used to encrypt this component. public var kmsKeyId: Swift.String? /// The name of the component. /// This member is required. public var name: Swift.String? - /// The platform of the component. + /// The operating system platform of the component. /// This member is required. public var platform: ImagebuilderClientTypes.Platform? /// The semantic version of the component. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Assignment: For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node. Patterns: You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01. @@ -2005,7 +2045,7 @@ public struct CreateComponentInput: Swift.Equatable { public var semanticVersion: Swift.String? /// The operating system (OS) version supported by the component. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation. public var supportedOsVersions: [Swift.String]? - /// The tags of the component. + /// The tags that apply to the component. public var tags: [Swift.String:Swift.String]? /// The uri of a YAML component document file. This must be an S3 URL (s3://bucket/key), and the requester must have permission to access the S3 bucket it points to. If you use Amazon S3, you can specify component content up to your service quota. Alternatively, you can specify the YAML document inline, using the component data property. You cannot specify both properties. public var uri: Swift.String? @@ -2304,7 +2344,7 @@ public struct CreateContainerRecipeInput: Swift.Equatable { /// The client token used to make this request idempotent. /// This member is required. public var clientToken: Swift.String? - /// Components for build and test that are included in the container recipe. + /// Components for build and test that are included in the container recipe. Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination. /// This member is required. public var components: [ImagebuilderClientTypes.ComponentConfiguration]? /// The type of container to create. @@ -3412,7 +3452,7 @@ public struct CreateImageRecipeInput: Swift.Equatable { /// The idempotency token used to make this request idempotent. /// This member is required. public var clientToken: Swift.String? - /// The components of the image recipe. + /// The components included in the image recipe. /// This member is required. public var components: [ImagebuilderClientTypes.ComponentConfiguration]? /// The description of the image recipe. @@ -7182,6 +7222,7 @@ extension ImagebuilderClientTypes.Image: Swift.Codable { case distributionConfiguration case enhancedImageMetadataEnabled case imageRecipe + case imageSource case imageTestsConfiguration case infrastructureConfiguration case name @@ -7219,6 +7260,9 @@ extension ImagebuilderClientTypes.Image: Swift.Codable { if let imageRecipe = self.imageRecipe { try encodeContainer.encode(imageRecipe, forKey: .imageRecipe) } + if let imageSource = self.imageSource { + try encodeContainer.encode(imageSource.rawValue, forKey: .imageSource) + } if let imageTestsConfiguration = self.imageTestsConfiguration { try encodeContainer.encode(imageTestsConfiguration, forKey: .imageTestsConfiguration) } @@ -7309,6 +7353,8 @@ extension ImagebuilderClientTypes.Image: Swift.Codable { tags = tagsDecoded0 let buildTypeDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.BuildType.self, forKey: .buildType) buildType = buildTypeDecoded + let imageSourceDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.ImageSource.self, forKey: .imageSource) + imageSource = imageSourceDecoded } } @@ -7331,27 +7377,29 @@ extension ImagebuilderClientTypes { /// /// * IMPORT – A VM import created the image to use as the base image for the recipe. public var buildType: ImagebuilderClientTypes.BuildType? - /// The recipe that is used to create an Image Builder container image. + /// For container images, this is the container recipe that Image Builder used to create the image. For images that distribute an AMI, this is empty. public var containerRecipe: ImagebuilderClientTypes.ContainerRecipe? - /// The date on which this image was created. + /// The date on which Image Builder created this image. public var dateCreated: Swift.String? - /// The distribution configuration used when creating this image. + /// The distribution configuration that Image Builder used to create this image. public var distributionConfiguration: ImagebuilderClientTypes.DistributionConfiguration? - /// Collects additional information about the image being created, including the operating system (OS) version and package list. This information is used to enhance the overall experience of using EC2 Image Builder. Enabled by default. + /// Indicates whether Image Builder collects additional information about the image, such as the operating system (OS) version and package list. public var enhancedImageMetadataEnabled: Swift.Bool? - /// The image recipe used when creating the image. + /// For images that distribute an AMI, this is the image recipe that Image Builder used to create the image. For container images, this is empty. public var imageRecipe: ImagebuilderClientTypes.ImageRecipe? - /// The image tests configuration used when creating this image. + /// The origin of the base image that Image Builder used to build this image. + public var imageSource: ImagebuilderClientTypes.ImageSource? + /// The image tests that ran when that Image Builder created this image. public var imageTestsConfiguration: ImagebuilderClientTypes.ImageTestsConfiguration? - /// The infrastructure used when creating this image. + /// The infrastructure that Image Builder used to create this image. public var infrastructureConfiguration: ImagebuilderClientTypes.InfrastructureConfiguration? /// The name of the image. public var name: Swift.String? - /// The operating system version of the instance. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019. + /// The operating system version for instances that launch from this image. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019. public var osVersion: Swift.String? - /// The output resources produced when creating this image. + /// The output resources that Image Builder produces for this image. public var outputResources: ImagebuilderClientTypes.OutputResources? - /// The platform of the image. + /// The image operating system platform, such as Linux or Windows. public var platform: ImagebuilderClientTypes.Platform? /// The Amazon Resource Name (ARN) of the image pipeline that created this image. public var sourcePipelineArn: Swift.String? @@ -7359,9 +7407,9 @@ extension ImagebuilderClientTypes { public var sourcePipelineName: Swift.String? /// The state of the image. public var state: ImagebuilderClientTypes.ImageState? - /// The tags of the image. + /// The tags that apply to this image. public var tags: [Swift.String:Swift.String]? - /// Specifies whether this is an AMI or container image. + /// Specifies whether this image produces an AMI or a container image. public var type: ImagebuilderClientTypes.ImageType? /// The semantic version of the image. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Assignment: For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node. Patterns: You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. public var version: Swift.String? @@ -7374,6 +7422,7 @@ extension ImagebuilderClientTypes { distributionConfiguration: ImagebuilderClientTypes.DistributionConfiguration? = nil, enhancedImageMetadataEnabled: Swift.Bool? = nil, imageRecipe: ImagebuilderClientTypes.ImageRecipe? = nil, + imageSource: ImagebuilderClientTypes.ImageSource? = nil, imageTestsConfiguration: ImagebuilderClientTypes.ImageTestsConfiguration? = nil, infrastructureConfiguration: ImagebuilderClientTypes.InfrastructureConfiguration? = nil, name: Swift.String? = nil, @@ -7395,6 +7444,7 @@ extension ImagebuilderClientTypes { self.distributionConfiguration = distributionConfiguration self.enhancedImageMetadataEnabled = enhancedImageMetadataEnabled self.imageRecipe = imageRecipe + self.imageSource = imageSource self.imageTestsConfiguration = imageTestsConfiguration self.infrastructureConfiguration = infrastructureConfiguration self.name = name @@ -7593,9 +7643,9 @@ extension ImagebuilderClientTypes { public var containerRecipeArn: Swift.String? /// The date on which this image pipeline was created. public var dateCreated: Swift.String? - /// The date on which this image pipeline was last run. + /// This is no longer supported, and does not return a value. public var dateLastRun: Swift.String? - /// The date on which this image pipeline will next be run. + /// This is no longer supported, and does not return a value. public var dateNextRun: Swift.String? /// The date on which this image pipeline was last updated. public var dateUpdated: Swift.String? @@ -7806,7 +7856,7 @@ extension ImagebuilderClientTypes { public var arn: Swift.String? /// The block device mappings to apply when creating images from this recipe. public var blockDeviceMappings: [ImagebuilderClientTypes.InstanceBlockDeviceMapping]? - /// The components of the image recipe. + /// The components that are included in the image recipe. Recipes require a minimum of one build component, and can have a maximum of 20 build and test components in any combination. public var components: [ImagebuilderClientTypes.ComponentConfiguration]? /// The date on which this image recipe was created. public var dateCreated: Swift.String? @@ -7972,6 +8022,44 @@ extension ImagebuilderClientTypes { } +extension ImagebuilderClientTypes { + public enum ImageSource: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case amazonManaged + case awsMarketplace + case custom + case imported + case sdkUnknown(Swift.String) + + public static var allCases: [ImageSource] { + return [ + .amazonManaged, + .awsMarketplace, + .custom, + .imported, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .amazonManaged: return "AMAZON_MANAGED" + case .awsMarketplace: return "AWS_MARKETPLACE" + case .custom: return "CUSTOM" + case .imported: return "IMPORTED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ImageSource(rawValue: rawValue) ?? ImageSource.sdkUnknown(rawValue) + } + } +} + extension ImagebuilderClientTypes.ImageState: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case reason @@ -8081,6 +8169,7 @@ extension ImagebuilderClientTypes.ImageSummary: Swift.Codable { case arn case buildType case dateCreated + case imageSource case name case osVersion case outputResources @@ -8103,6 +8192,9 @@ extension ImagebuilderClientTypes.ImageSummary: Swift.Codable { if let dateCreated = self.dateCreated { try encodeContainer.encode(dateCreated, forKey: .dateCreated) } + if let imageSource = self.imageSource { + try encodeContainer.encode(imageSource.rawValue, forKey: .imageSource) + } if let name = self.name { try encodeContainer.encode(name, forKey: .name) } @@ -8170,6 +8262,8 @@ extension ImagebuilderClientTypes.ImageSummary: Swift.Codable { tags = tagsDecoded0 let buildTypeDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.BuildType.self, forKey: .buildType) buildType = buildTypeDecoded + let imageSourceDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.ImageSource.self, forKey: .imageSource) + imageSource = imageSourceDecoded } } @@ -8186,23 +8280,25 @@ extension ImagebuilderClientTypes { /// /// * IMPORT – A VM import created the image to use as the base image for the recipe. public var buildType: ImagebuilderClientTypes.BuildType? - /// The date on which this image was created. + /// The date on which Image Builder created this image. public var dateCreated: Swift.String? + /// The origin of the base image that Image Builder used to build this image. + public var imageSource: ImagebuilderClientTypes.ImageSource? /// The name of the image. public var name: Swift.String? - /// The operating system version of the instance. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019. + /// The operating system version of the instances that launch from this image. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019. public var osVersion: Swift.String? - /// The output resources produced when creating this image. + /// The output resources that Image Builder produced when it created this image. public var outputResources: ImagebuilderClientTypes.OutputResources? /// The owner of the image. public var owner: Swift.String? - /// The platform of the image. + /// The image operating system platform, such as Linux or Windows. public var platform: ImagebuilderClientTypes.Platform? /// The state of the image. public var state: ImagebuilderClientTypes.ImageState? - /// The tags of the image. + /// The tags that apply to this image. public var tags: [Swift.String:Swift.String]? - /// Specifies whether this is an AMI or container image. + /// Specifies whether this image produces an AMI or a container image. public var type: ImagebuilderClientTypes.ImageType? /// The version of the image. public var version: Swift.String? @@ -8211,6 +8307,7 @@ extension ImagebuilderClientTypes { arn: Swift.String? = nil, buildType: ImagebuilderClientTypes.BuildType? = nil, dateCreated: Swift.String? = nil, + imageSource: ImagebuilderClientTypes.ImageSource? = nil, name: Swift.String? = nil, osVersion: Swift.String? = nil, outputResources: ImagebuilderClientTypes.OutputResources? = nil, @@ -8225,6 +8322,7 @@ extension ImagebuilderClientTypes { self.arn = arn self.buildType = buildType self.dateCreated = dateCreated + self.imageSource = imageSource self.name = name self.osVersion = osVersion self.outputResources = outputResources @@ -8269,7 +8367,7 @@ extension ImagebuilderClientTypes { public struct ImageTestsConfiguration: Swift.Equatable { /// Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution. public var imageTestsEnabled: Swift.Bool? - /// The maximum time in minutes that tests are permitted to run. + /// The maximum time in minutes that tests are permitted to run. The timeoutMinutes attribute is not currently active. This value is ignored. public var timeoutMinutes: Swift.Int? public init ( @@ -8321,6 +8419,7 @@ extension ImagebuilderClientTypes.ImageVersion: Swift.Codable { case arn case buildType case dateCreated + case imageSource case name case osVersion case owner @@ -8340,6 +8439,9 @@ extension ImagebuilderClientTypes.ImageVersion: Swift.Codable { if let dateCreated = self.dateCreated { try encodeContainer.encode(dateCreated, forKey: .dateCreated) } + if let imageSource = self.imageSource { + try encodeContainer.encode(imageSource.rawValue, forKey: .imageSource) + } if let name = self.name { try encodeContainer.encode(name, forKey: .name) } @@ -8380,6 +8482,8 @@ extension ImagebuilderClientTypes.ImageVersion: Swift.Codable { dateCreated = dateCreatedDecoded let buildTypeDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.BuildType.self, forKey: .buildType) buildType = buildTypeDecoded + let imageSourceDecoded = try containerValues.decodeIfPresent(ImagebuilderClientTypes.ImageSource.self, forKey: .imageSource) + imageSource = imageSourceDecoded } } @@ -8404,15 +8508,17 @@ extension ImagebuilderClientTypes { public var buildType: ImagebuilderClientTypes.BuildType? /// The date on which this specific version of the Image Builder image was created. public var dateCreated: Swift.String? + /// The origin of the base image that Image Builder used to build this image. + public var imageSource: ImagebuilderClientTypes.ImageSource? /// The name of this specific version of an Image Builder image. public var name: Swift.String? /// The operating system version of the Amazon EC2 build instance. For example, Amazon Linux 2, Ubuntu 18, or Microsoft Windows Server 2019. public var osVersion: Swift.String? /// The owner of the image version. public var owner: Swift.String? - /// The platform of the image version, for example "Windows" or "Linux". + /// The operating system platform of the image version, for example "Windows" or "Linux". public var platform: ImagebuilderClientTypes.Platform? - /// Specifies whether this image is an AMI or a container image. + /// Specifies whether this image produces an AMI or a container image. public var type: ImagebuilderClientTypes.ImageType? /// Details for a specific version of an Image Builder image. This version follows the semantic version syntax. The semantic version has four nodes: ../. You can assign values for the first three, and can filter on all of them. Assignment: For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the build number to the fourth node. Patterns: You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or a date, such as 2021.01.01. Filtering: With semantic versioning, you have the flexibility to use wildcards (x) to specify the most recent versions or nodes when selecting the base image or components for your recipe. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards. public var version: Swift.String? @@ -8421,6 +8527,7 @@ extension ImagebuilderClientTypes { arn: Swift.String? = nil, buildType: ImagebuilderClientTypes.BuildType? = nil, dateCreated: Swift.String? = nil, + imageSource: ImagebuilderClientTypes.ImageSource? = nil, name: Swift.String? = nil, osVersion: Swift.String? = nil, owner: Swift.String? = nil, @@ -8432,6 +8539,7 @@ extension ImagebuilderClientTypes { self.arn = arn self.buildType = buildType self.dateCreated = dateCreated + self.imageSource = imageSource self.name = name self.osVersion = osVersion self.owner = owner @@ -9510,7 +9618,7 @@ extension ImagebuilderClientTypes.InstanceMetadataOptions: Swift.Codable { extension ImagebuilderClientTypes { /// The instance metadata options that apply to the HTTP requests that pipeline builds use to launch EC2 build and test instances. For more information about instance metadata options, see [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html) in the Amazon EC2 User Guide for Linux instances, or [Configure the instance metadata options](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuring-instance-metadata-options.html) in the Amazon EC2 Windows Guide for Windows instances. public struct InstanceMetadataOptions: Swift.Equatable { - /// Limit the number of hops that an instance metadata request can traverse to reach its destination. + /// Limit the number of hops that an instance metadata request can traverse to reach its destination. The default is one hop. However, if HTTP tokens are required, container image builds need a minimum of two hops. public var httpPutResponseHopLimit: Swift.Int? /// Indicates whether a signed token header is required for instance metadata retrieval requests. The values affect the response as follows: /// @@ -10230,7 +10338,7 @@ extension ListComponentsInput: ClientRuntime.URLPathProvider { } public struct ListComponentsInput: Swift.Equatable { - /// Returns the list of component build versions for the specified name. + /// Returns the list of components for the specified name. public var byName: Swift.Bool /// Use the following filters to streamline results: /// @@ -10250,7 +10358,7 @@ public struct ListComponentsInput: Swift.Equatable { public var maxResults: Swift.Int? /// A token to specify where to start paginating. This is the NextToken from a previously truncated response. public var nextToken: Swift.String? - /// The owner defines which components you want to list. By default, this request will only show components owned by your account. You can use this field to specify if you want to view components owned by yourself, by Amazon, or those components that have been shared with you by other customers. + /// Filters results based on the type of owner for the component. By default, this request returns a list of components that your account owns. To see results for other types of owners, you can specify components that Amazon manages, third party components, or components that other accounts have shared with you. public var owner: ImagebuilderClientTypes.Ownership? public init ( @@ -12442,6 +12550,7 @@ extension ImagebuilderClientTypes { case amazon case `self` case shared + case thirdparty case sdkUnknown(Swift.String) public static var allCases: [Ownership] { @@ -12449,6 +12558,7 @@ extension ImagebuilderClientTypes { .amazon, .self, .shared, + .thirdparty, .sdkUnknown("") ] } @@ -12461,6 +12571,7 @@ extension ImagebuilderClientTypes { case .amazon: return "Amazon" case .self: return "Self" case .shared: return "Shared" + case .thirdparty: return "ThirdParty" case let .sdkUnknown(s): return s } } diff --git a/Sources/Services/AWSInspector/Paginators.swift b/Sources/Services/AWSInspector/Paginators.swift index 9199e16b1bd..9db29aa4ac2 100644 --- a/Sources/Services/AWSInspector/Paginators.swift +++ b/Sources/Services/AWSInspector/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetExclusionsPreviewOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetExclusionsPreviewInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetExclusionsPreviewOutputResponse` extension InspectorClient { + /// Paginate over `[GetExclusionsPreviewOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetExclusionsPreviewInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetExclusionsPreviewOutputResponse` public func getExclusionsPreviewPaginated(input: GetExclusionsPreviewInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetExclusionsPreviewInput.nextToken, outputKey: \GetExclusionsPreviewOutputResponse.nextToken, paginationFunction: self.getExclusionsPreview(input:)) } @@ -27,16 +26,15 @@ extension GetExclusionsPreviewInput: ClientRuntime.PaginateToken { previewToken: self.previewToken )} } - -/// Paginate over `[ListAssessmentRunAgentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentRunAgentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentRunAgentsOutputResponse` extension InspectorClient { + /// Paginate over `[ListAssessmentRunAgentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentRunAgentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentRunAgentsOutputResponse` public func listAssessmentRunAgentsPaginated(input: ListAssessmentRunAgentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentRunAgentsInput.nextToken, outputKey: \ListAssessmentRunAgentsOutputResponse.nextToken, paginationFunction: self.listAssessmentRunAgents(input:)) } @@ -51,16 +49,15 @@ extension ListAssessmentRunAgentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssessmentRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentRunsOutputResponse` extension InspectorClient { + /// Paginate over `[ListAssessmentRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentRunsOutputResponse` public func listAssessmentRunsPaginated(input: ListAssessmentRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentRunsInput.nextToken, outputKey: \ListAssessmentRunsOutputResponse.nextToken, paginationFunction: self.listAssessmentRuns(input:)) } @@ -75,16 +72,15 @@ extension ListAssessmentRunsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssessmentTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentTargetsOutputResponse` extension InspectorClient { + /// Paginate over `[ListAssessmentTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentTargetsOutputResponse` public func listAssessmentTargetsPaginated(input: ListAssessmentTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentTargetsInput.nextToken, outputKey: \ListAssessmentTargetsOutputResponse.nextToken, paginationFunction: self.listAssessmentTargets(input:)) } @@ -98,16 +94,15 @@ extension ListAssessmentTargetsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssessmentTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssessmentTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentTemplatesOutputResponse` extension InspectorClient { + /// Paginate over `[ListAssessmentTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssessmentTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssessmentTemplatesOutputResponse` public func listAssessmentTemplatesPaginated(input: ListAssessmentTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssessmentTemplatesInput.nextToken, outputKey: \ListAssessmentTemplatesOutputResponse.nextToken, paginationFunction: self.listAssessmentTemplates(input:)) } @@ -122,16 +117,15 @@ extension ListAssessmentTemplatesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventSubscriptionsOutputResponse` extension InspectorClient { + /// Paginate over `[ListEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventSubscriptionsOutputResponse` public func listEventSubscriptionsPaginated(input: ListEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventSubscriptionsInput.nextToken, outputKey: \ListEventSubscriptionsOutputResponse.nextToken, paginationFunction: self.listEventSubscriptions(input:)) } @@ -145,16 +139,15 @@ extension ListEventSubscriptionsInput: ClientRuntime.PaginateToken { resourceArn: self.resourceArn )} } - -/// Paginate over `[ListExclusionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExclusionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExclusionsOutputResponse` extension InspectorClient { + /// Paginate over `[ListExclusionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExclusionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExclusionsOutputResponse` public func listExclusionsPaginated(input: ListExclusionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExclusionsInput.nextToken, outputKey: \ListExclusionsOutputResponse.nextToken, paginationFunction: self.listExclusions(input:)) } @@ -168,16 +161,15 @@ extension ListExclusionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` extension InspectorClient { + /// Paginate over `[ListFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` public func listFindingsPaginated(input: ListFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsInput.nextToken, outputKey: \ListFindingsOutputResponse.nextToken, paginationFunction: self.listFindings(input:)) } @@ -192,16 +184,15 @@ extension ListFindingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRulesPackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRulesPackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRulesPackagesOutputResponse` extension InspectorClient { + /// Paginate over `[ListRulesPackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRulesPackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRulesPackagesOutputResponse` public func listRulesPackagesPaginated(input: ListRulesPackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRulesPackagesInput.nextToken, outputKey: \ListRulesPackagesOutputResponse.nextToken, paginationFunction: self.listRulesPackages(input:)) } @@ -214,16 +205,15 @@ extension ListRulesPackagesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[PreviewAgentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[PreviewAgentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `PreviewAgentsOutputResponse` extension InspectorClient { + /// Paginate over `[PreviewAgentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[PreviewAgentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `PreviewAgentsOutputResponse` public func previewAgentsPaginated(input: PreviewAgentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \PreviewAgentsInput.nextToken, outputKey: \PreviewAgentsOutputResponse.nextToken, paginationFunction: self.previewAgents(input:)) } diff --git a/Sources/Services/AWSInspector2/Paginators.swift b/Sources/Services/AWSInspector2/Paginators.swift index 3534d855c6d..38bfaac82e9 100644 --- a/Sources/Services/AWSInspector2/Paginators.swift +++ b/Sources/Services/AWSInspector2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountPermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountPermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountPermissionsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListAccountPermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountPermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountPermissionsOutputResponse` public func listAccountPermissionsPaginated(input: ListAccountPermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountPermissionsInput.nextToken, outputKey: \ListAccountPermissionsOutputResponse.nextToken, paginationFunction: self.listAccountPermissions(input:)) } @@ -26,24 +25,23 @@ extension ListAccountPermissionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountPermissionsPaginated` -/// to access the nested member `[Inspector2ClientTypes.Permission]` -/// - Returns: `[Inspector2ClientTypes.Permission]` extension PaginatorSequence where Input == ListAccountPermissionsInput, Output == ListAccountPermissionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountPermissionsPaginated` + /// to access the nested member `[Inspector2ClientTypes.Permission]` + /// - Returns: `[Inspector2ClientTypes.Permission]` public func permissions() async throws -> [Inspector2ClientTypes.Permission] { return try await self.asyncCompactMap { item in item.permissions } } } - -/// Paginate over `[ListCoverageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCoverageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCoverageOutputResponse` extension Inspector2Client { + /// Paginate over `[ListCoverageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCoverageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCoverageOutputResponse` public func listCoveragePaginated(input: ListCoverageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCoverageInput.nextToken, outputKey: \ListCoverageOutputResponse.nextToken, paginationFunction: self.listCoverage(input:)) } @@ -58,24 +56,23 @@ extension ListCoverageInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCoveragePaginated` -/// to access the nested member `[Inspector2ClientTypes.CoveredResource]` -/// - Returns: `[Inspector2ClientTypes.CoveredResource]` extension PaginatorSequence where Input == ListCoverageInput, Output == ListCoverageOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCoveragePaginated` + /// to access the nested member `[Inspector2ClientTypes.CoveredResource]` + /// - Returns: `[Inspector2ClientTypes.CoveredResource]` public func coveredResources() async throws -> [Inspector2ClientTypes.CoveredResource] { return try await self.asyncCompactMap { item in item.coveredResources } } } - -/// Paginate over `[ListCoverageStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCoverageStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCoverageStatisticsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListCoverageStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCoverageStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCoverageStatisticsOutputResponse` public func listCoverageStatisticsPaginated(input: ListCoverageStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCoverageStatisticsInput.nextToken, outputKey: \ListCoverageStatisticsOutputResponse.nextToken, paginationFunction: self.listCoverageStatistics(input:)) } @@ -90,24 +87,23 @@ extension ListCoverageStatisticsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCoverageStatisticsPaginated` -/// to access the nested member `[Inspector2ClientTypes.Counts]` -/// - Returns: `[Inspector2ClientTypes.Counts]` extension PaginatorSequence where Input == ListCoverageStatisticsInput, Output == ListCoverageStatisticsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCoverageStatisticsPaginated` + /// to access the nested member `[Inspector2ClientTypes.Counts]` + /// - Returns: `[Inspector2ClientTypes.Counts]` public func countsByGroup() async throws -> [Inspector2ClientTypes.Counts] { return try await self.asyncCompactMap { item in item.countsByGroup } } } - -/// Paginate over `[ListDelegatedAdminAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDelegatedAdminAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedAdminAccountsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListDelegatedAdminAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDelegatedAdminAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedAdminAccountsOutputResponse` public func listDelegatedAdminAccountsPaginated(input: ListDelegatedAdminAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDelegatedAdminAccountsInput.nextToken, outputKey: \ListDelegatedAdminAccountsOutputResponse.nextToken, paginationFunction: self.listDelegatedAdminAccounts(input:)) } @@ -121,24 +117,23 @@ extension ListDelegatedAdminAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDelegatedAdminAccountsPaginated` -/// to access the nested member `[Inspector2ClientTypes.DelegatedAdminAccount]` -/// - Returns: `[Inspector2ClientTypes.DelegatedAdminAccount]` extension PaginatorSequence where Input == ListDelegatedAdminAccountsInput, Output == ListDelegatedAdminAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDelegatedAdminAccountsPaginated` + /// to access the nested member `[Inspector2ClientTypes.DelegatedAdminAccount]` + /// - Returns: `[Inspector2ClientTypes.DelegatedAdminAccount]` public func delegatedAdminAccounts() async throws -> [Inspector2ClientTypes.DelegatedAdminAccount] { return try await self.asyncCompactMap { item in item.delegatedAdminAccounts } } } - -/// Paginate over `[ListFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` extension Inspector2Client { + /// Paginate over `[ListFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` public func listFiltersPaginated(input: ListFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFiltersInput.nextToken, outputKey: \ListFiltersOutputResponse.nextToken, paginationFunction: self.listFilters(input:)) } @@ -154,24 +149,23 @@ extension ListFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` -/// to access the nested member `[Inspector2ClientTypes.Filter]` -/// - Returns: `[Inspector2ClientTypes.Filter]` extension PaginatorSequence where Input == ListFiltersInput, Output == ListFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` + /// to access the nested member `[Inspector2ClientTypes.Filter]` + /// - Returns: `[Inspector2ClientTypes.Filter]` public func filters() async throws -> [Inspector2ClientTypes.Filter] { return try await self.asyncCompactMap { item in item.filters } } } - -/// Paginate over `[ListFindingAggregationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingAggregationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingAggregationsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListFindingAggregationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingAggregationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingAggregationsOutputResponse` public func listFindingAggregationsPaginated(input: ListFindingAggregationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingAggregationsInput.nextToken, outputKey: \ListFindingAggregationsOutputResponse.nextToken, paginationFunction: self.listFindingAggregations(input:)) } @@ -188,24 +182,23 @@ extension ListFindingAggregationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingAggregationsPaginated` -/// to access the nested member `[Inspector2ClientTypes.AggregationResponse]` -/// - Returns: `[Inspector2ClientTypes.AggregationResponse]` extension PaginatorSequence where Input == ListFindingAggregationsInput, Output == ListFindingAggregationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingAggregationsPaginated` + /// to access the nested member `[Inspector2ClientTypes.AggregationResponse]` + /// - Returns: `[Inspector2ClientTypes.AggregationResponse]` public func responses() async throws -> [Inspector2ClientTypes.AggregationResponse] { return try await self.asyncCompactMap { item in item.responses } } } - -/// Paginate over `[ListFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` public func listFindingsPaginated(input: ListFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsInput.nextToken, outputKey: \ListFindingsOutputResponse.nextToken, paginationFunction: self.listFindings(input:)) } @@ -221,24 +214,23 @@ extension ListFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` -/// to access the nested member `[Inspector2ClientTypes.Finding]` -/// - Returns: `[Inspector2ClientTypes.Finding]` extension PaginatorSequence where Input == ListFindingsInput, Output == ListFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` + /// to access the nested member `[Inspector2ClientTypes.Finding]` + /// - Returns: `[Inspector2ClientTypes.Finding]` public func findings() async throws -> [Inspector2ClientTypes.Finding] { return try await self.asyncCompactMap { item in item.findings } } } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension Inspector2Client { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -253,24 +245,23 @@ extension ListMembersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` -/// to access the nested member `[Inspector2ClientTypes.Member]` -/// - Returns: `[Inspector2ClientTypes.Member]` extension PaginatorSequence where Input == ListMembersInput, Output == ListMembersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` + /// to access the nested member `[Inspector2ClientTypes.Member]` + /// - Returns: `[Inspector2ClientTypes.Member]` public func members() async throws -> [Inspector2ClientTypes.Member] { return try await self.asyncCompactMap { item in item.members } } } - -/// Paginate over `[ListUsageTotalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsageTotalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsageTotalsOutputResponse` extension Inspector2Client { + /// Paginate over `[ListUsageTotalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsageTotalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsageTotalsOutputResponse` public func listUsageTotalsPaginated(input: ListUsageTotalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsageTotalsInput.nextToken, outputKey: \ListUsageTotalsOutputResponse.nextToken, paginationFunction: self.listUsageTotals(input:)) } @@ -285,10 +276,10 @@ extension ListUsageTotalsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsageTotalsPaginated` -/// to access the nested member `[Inspector2ClientTypes.UsageTotal]` -/// - Returns: `[Inspector2ClientTypes.UsageTotal]` extension PaginatorSequence where Input == ListUsageTotalsInput, Output == ListUsageTotalsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsageTotalsPaginated` + /// to access the nested member `[Inspector2ClientTypes.UsageTotal]` + /// - Returns: `[Inspector2ClientTypes.UsageTotal]` public func totals() async throws -> [Inspector2ClientTypes.UsageTotal] { return try await self.asyncCompactMap { item in item.totals } } diff --git a/Sources/Services/AWSIoT/Paginators.swift b/Sources/Services/AWSIoT/Paginators.swift index 7d48bb3204a..023738d869b 100644 --- a/Sources/Services/AWSIoT/Paginators.swift +++ b/Sources/Services/AWSIoT/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetBehaviorModelTrainingSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBehaviorModelTrainingSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBehaviorModelTrainingSummariesOutputResponse` extension IoTClient { + /// Paginate over `[GetBehaviorModelTrainingSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBehaviorModelTrainingSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBehaviorModelTrainingSummariesOutputResponse` public func getBehaviorModelTrainingSummariesPaginated(input: GetBehaviorModelTrainingSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBehaviorModelTrainingSummariesInput.nextToken, outputKey: \GetBehaviorModelTrainingSummariesOutputResponse.nextToken, paginationFunction: self.getBehaviorModelTrainingSummaries(input:)) } @@ -26,24 +25,23 @@ extension GetBehaviorModelTrainingSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getBehaviorModelTrainingSummariesPaginated` -/// to access the nested member `[IoTClientTypes.BehaviorModelTrainingSummary]` -/// - Returns: `[IoTClientTypes.BehaviorModelTrainingSummary]` extension PaginatorSequence where Input == GetBehaviorModelTrainingSummariesInput, Output == GetBehaviorModelTrainingSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getBehaviorModelTrainingSummariesPaginated` + /// to access the nested member `[IoTClientTypes.BehaviorModelTrainingSummary]` + /// - Returns: `[IoTClientTypes.BehaviorModelTrainingSummary]` public func summaries() async throws -> [IoTClientTypes.BehaviorModelTrainingSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListActiveViolationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActiveViolationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActiveViolationsOutputResponse` extension IoTClient { + /// Paginate over `[ListActiveViolationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActiveViolationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActiveViolationsOutputResponse` public func listActiveViolationsPaginated(input: ListActiveViolationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActiveViolationsInput.nextToken, outputKey: \ListActiveViolationsOutputResponse.nextToken, paginationFunction: self.listActiveViolations(input:)) } @@ -62,24 +60,23 @@ extension ListActiveViolationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listActiveViolationsPaginated` -/// to access the nested member `[IoTClientTypes.ActiveViolation]` -/// - Returns: `[IoTClientTypes.ActiveViolation]` extension PaginatorSequence where Input == ListActiveViolationsInput, Output == ListActiveViolationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listActiveViolationsPaginated` + /// to access the nested member `[IoTClientTypes.ActiveViolation]` + /// - Returns: `[IoTClientTypes.ActiveViolation]` public func activeViolations() async throws -> [IoTClientTypes.ActiveViolation] { return try await self.asyncCompactMap { item in item.activeViolations } } } - -/// Paginate over `[ListAttachedPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedPoliciesOutputResponse` extension IoTClient { + /// Paginate over `[ListAttachedPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedPoliciesOutputResponse` public func listAttachedPoliciesPaginated(input: ListAttachedPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedPoliciesInput.marker, outputKey: \ListAttachedPoliciesOutputResponse.nextMarker, paginationFunction: self.listAttachedPolicies(input:)) } @@ -95,24 +92,23 @@ extension ListAttachedPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachedPoliciesPaginated` -/// to access the nested member `[IoTClientTypes.Policy]` -/// - Returns: `[IoTClientTypes.Policy]` extension PaginatorSequence where Input == ListAttachedPoliciesInput, Output == ListAttachedPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachedPoliciesPaginated` + /// to access the nested member `[IoTClientTypes.Policy]` + /// - Returns: `[IoTClientTypes.Policy]` public func policies() async throws -> [IoTClientTypes.Policy] { return try await self.asyncCompactMap { item in item.policies } } } - -/// Paginate over `[ListAuditFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuditFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuditFindingsOutputResponse` extension IoTClient { + /// Paginate over `[ListAuditFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuditFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuditFindingsOutputResponse` public func listAuditFindingsPaginated(input: ListAuditFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuditFindingsInput.nextToken, outputKey: \ListAuditFindingsOutputResponse.nextToken, paginationFunction: self.listAuditFindings(input:)) } @@ -132,24 +128,23 @@ extension ListAuditFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuditFindingsPaginated` -/// to access the nested member `[IoTClientTypes.AuditFinding]` -/// - Returns: `[IoTClientTypes.AuditFinding]` extension PaginatorSequence where Input == ListAuditFindingsInput, Output == ListAuditFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuditFindingsPaginated` + /// to access the nested member `[IoTClientTypes.AuditFinding]` + /// - Returns: `[IoTClientTypes.AuditFinding]` public func findings() async throws -> [IoTClientTypes.AuditFinding] { return try await self.asyncCompactMap { item in item.findings } } } - -/// Paginate over `[ListAuditMitigationActionsExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuditMitigationActionsExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuditMitigationActionsExecutionsOutputResponse` extension IoTClient { + /// Paginate over `[ListAuditMitigationActionsExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuditMitigationActionsExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuditMitigationActionsExecutionsOutputResponse` public func listAuditMitigationActionsExecutionsPaginated(input: ListAuditMitigationActionsExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuditMitigationActionsExecutionsInput.nextToken, outputKey: \ListAuditMitigationActionsExecutionsOutputResponse.nextToken, paginationFunction: self.listAuditMitigationActionsExecutions(input:)) } @@ -166,24 +161,23 @@ extension ListAuditMitigationActionsExecutionsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuditMitigationActionsExecutionsPaginated` -/// to access the nested member `[IoTClientTypes.AuditMitigationActionExecutionMetadata]` -/// - Returns: `[IoTClientTypes.AuditMitigationActionExecutionMetadata]` extension PaginatorSequence where Input == ListAuditMitigationActionsExecutionsInput, Output == ListAuditMitigationActionsExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuditMitigationActionsExecutionsPaginated` + /// to access the nested member `[IoTClientTypes.AuditMitigationActionExecutionMetadata]` + /// - Returns: `[IoTClientTypes.AuditMitigationActionExecutionMetadata]` public func actionsExecutions() async throws -> [IoTClientTypes.AuditMitigationActionExecutionMetadata] { return try await self.asyncCompactMap { item in item.actionsExecutions } } } - -/// Paginate over `[ListAuditMitigationActionsTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuditMitigationActionsTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuditMitigationActionsTasksOutputResponse` extension IoTClient { + /// Paginate over `[ListAuditMitigationActionsTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuditMitigationActionsTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuditMitigationActionsTasksOutputResponse` public func listAuditMitigationActionsTasksPaginated(input: ListAuditMitigationActionsTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuditMitigationActionsTasksInput.nextToken, outputKey: \ListAuditMitigationActionsTasksOutputResponse.nextToken, paginationFunction: self.listAuditMitigationActionsTasks(input:)) } @@ -202,24 +196,23 @@ extension ListAuditMitigationActionsTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuditMitigationActionsTasksPaginated` -/// to access the nested member `[IoTClientTypes.AuditMitigationActionsTaskMetadata]` -/// - Returns: `[IoTClientTypes.AuditMitigationActionsTaskMetadata]` extension PaginatorSequence where Input == ListAuditMitigationActionsTasksInput, Output == ListAuditMitigationActionsTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuditMitigationActionsTasksPaginated` + /// to access the nested member `[IoTClientTypes.AuditMitigationActionsTaskMetadata]` + /// - Returns: `[IoTClientTypes.AuditMitigationActionsTaskMetadata]` public func tasks() async throws -> [IoTClientTypes.AuditMitigationActionsTaskMetadata] { return try await self.asyncCompactMap { item in item.tasks } } } - -/// Paginate over `[ListAuditSuppressionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuditSuppressionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuditSuppressionsOutputResponse` extension IoTClient { + /// Paginate over `[ListAuditSuppressionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuditSuppressionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuditSuppressionsOutputResponse` public func listAuditSuppressionsPaginated(input: ListAuditSuppressionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuditSuppressionsInput.nextToken, outputKey: \ListAuditSuppressionsOutputResponse.nextToken, paginationFunction: self.listAuditSuppressions(input:)) } @@ -236,24 +229,23 @@ extension ListAuditSuppressionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuditSuppressionsPaginated` -/// to access the nested member `[IoTClientTypes.AuditSuppression]` -/// - Returns: `[IoTClientTypes.AuditSuppression]` extension PaginatorSequence where Input == ListAuditSuppressionsInput, Output == ListAuditSuppressionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuditSuppressionsPaginated` + /// to access the nested member `[IoTClientTypes.AuditSuppression]` + /// - Returns: `[IoTClientTypes.AuditSuppression]` public func suppressions() async throws -> [IoTClientTypes.AuditSuppression] { return try await self.asyncCompactMap { item in item.suppressions } } } - -/// Paginate over `[ListAuditTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuditTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuditTasksOutputResponse` extension IoTClient { + /// Paginate over `[ListAuditTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuditTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuditTasksOutputResponse` public func listAuditTasksPaginated(input: ListAuditTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuditTasksInput.nextToken, outputKey: \ListAuditTasksOutputResponse.nextToken, paginationFunction: self.listAuditTasks(input:)) } @@ -271,24 +263,23 @@ extension ListAuditTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuditTasksPaginated` -/// to access the nested member `[IoTClientTypes.AuditTaskMetadata]` -/// - Returns: `[IoTClientTypes.AuditTaskMetadata]` extension PaginatorSequence where Input == ListAuditTasksInput, Output == ListAuditTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuditTasksPaginated` + /// to access the nested member `[IoTClientTypes.AuditTaskMetadata]` + /// - Returns: `[IoTClientTypes.AuditTaskMetadata]` public func tasks() async throws -> [IoTClientTypes.AuditTaskMetadata] { return try await self.asyncCompactMap { item in item.tasks } } } - -/// Paginate over `[ListAuthorizersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAuthorizersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAuthorizersOutputResponse` extension IoTClient { + /// Paginate over `[ListAuthorizersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAuthorizersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAuthorizersOutputResponse` public func listAuthorizersPaginated(input: ListAuthorizersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAuthorizersInput.marker, outputKey: \ListAuthorizersOutputResponse.nextMarker, paginationFunction: self.listAuthorizers(input:)) } @@ -304,24 +295,23 @@ extension ListAuthorizersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAuthorizersPaginated` -/// to access the nested member `[IoTClientTypes.AuthorizerSummary]` -/// - Returns: `[IoTClientTypes.AuthorizerSummary]` extension PaginatorSequence where Input == ListAuthorizersInput, Output == ListAuthorizersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAuthorizersPaginated` + /// to access the nested member `[IoTClientTypes.AuthorizerSummary]` + /// - Returns: `[IoTClientTypes.AuthorizerSummary]` public func authorizers() async throws -> [IoTClientTypes.AuthorizerSummary] { return try await self.asyncCompactMap { item in item.authorizers } } } - -/// Paginate over `[ListBillingGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBillingGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBillingGroupsOutputResponse` extension IoTClient { + /// Paginate over `[ListBillingGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBillingGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBillingGroupsOutputResponse` public func listBillingGroupsPaginated(input: ListBillingGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBillingGroupsInput.nextToken, outputKey: \ListBillingGroupsOutputResponse.nextToken, paginationFunction: self.listBillingGroups(input:)) } @@ -336,24 +326,23 @@ extension ListBillingGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBillingGroupsPaginated` -/// to access the nested member `[IoTClientTypes.GroupNameAndArn]` -/// - Returns: `[IoTClientTypes.GroupNameAndArn]` extension PaginatorSequence where Input == ListBillingGroupsInput, Output == ListBillingGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBillingGroupsPaginated` + /// to access the nested member `[IoTClientTypes.GroupNameAndArn]` + /// - Returns: `[IoTClientTypes.GroupNameAndArn]` public func billingGroups() async throws -> [IoTClientTypes.GroupNameAndArn] { return try await self.asyncCompactMap { item in item.billingGroups } } } - -/// Paginate over `[ListCACertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCACertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCACertificatesOutputResponse` extension IoTClient { + /// Paginate over `[ListCACertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCACertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCACertificatesOutputResponse` public func listCACertificatesPaginated(input: ListCACertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCACertificatesInput.marker, outputKey: \ListCACertificatesOutputResponse.nextMarker, paginationFunction: self.listCACertificates(input:)) } @@ -369,24 +358,23 @@ extension ListCACertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCACertificatesPaginated` -/// to access the nested member `[IoTClientTypes.CACertificate]` -/// - Returns: `[IoTClientTypes.CACertificate]` extension PaginatorSequence where Input == ListCACertificatesInput, Output == ListCACertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCACertificatesPaginated` + /// to access the nested member `[IoTClientTypes.CACertificate]` + /// - Returns: `[IoTClientTypes.CACertificate]` public func certificates() async throws -> [IoTClientTypes.CACertificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[ListCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` extension IoTClient { + /// Paginate over `[ListCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` public func listCertificatesPaginated(input: ListCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificatesInput.marker, outputKey: \ListCertificatesOutputResponse.nextMarker, paginationFunction: self.listCertificates(input:)) } @@ -401,24 +389,23 @@ extension ListCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` -/// to access the nested member `[IoTClientTypes.Certificate]` -/// - Returns: `[IoTClientTypes.Certificate]` extension PaginatorSequence where Input == ListCertificatesInput, Output == ListCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` + /// to access the nested member `[IoTClientTypes.Certificate]` + /// - Returns: `[IoTClientTypes.Certificate]` public func certificates() async throws -> [IoTClientTypes.Certificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[ListCertificatesByCAOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificatesByCAInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesByCAOutputResponse` extension IoTClient { + /// Paginate over `[ListCertificatesByCAOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificatesByCAInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesByCAOutputResponse` public func listCertificatesByCAPaginated(input: ListCertificatesByCAInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificatesByCAInput.marker, outputKey: \ListCertificatesByCAOutputResponse.nextMarker, paginationFunction: self.listCertificatesByCA(input:)) } @@ -434,24 +421,23 @@ extension ListCertificatesByCAInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificatesByCAPaginated` -/// to access the nested member `[IoTClientTypes.Certificate]` -/// - Returns: `[IoTClientTypes.Certificate]` extension PaginatorSequence where Input == ListCertificatesByCAInput, Output == ListCertificatesByCAOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificatesByCAPaginated` + /// to access the nested member `[IoTClientTypes.Certificate]` + /// - Returns: `[IoTClientTypes.Certificate]` public func certificates() async throws -> [IoTClientTypes.Certificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[ListCustomMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomMetricsOutputResponse` extension IoTClient { + /// Paginate over `[ListCustomMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomMetricsOutputResponse` public func listCustomMetricsPaginated(input: ListCustomMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomMetricsInput.nextToken, outputKey: \ListCustomMetricsOutputResponse.nextToken, paginationFunction: self.listCustomMetrics(input:)) } @@ -465,24 +451,23 @@ extension ListCustomMetricsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomMetricsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListCustomMetricsInput, Output == ListCustomMetricsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomMetricsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func metricNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.metricNames } } } - -/// Paginate over `[ListDetectMitigationActionsExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDetectMitigationActionsExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDetectMitigationActionsExecutionsOutputResponse` extension IoTClient { + /// Paginate over `[ListDetectMitigationActionsExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDetectMitigationActionsExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDetectMitigationActionsExecutionsOutputResponse` public func listDetectMitigationActionsExecutionsPaginated(input: ListDetectMitigationActionsExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDetectMitigationActionsExecutionsInput.nextToken, outputKey: \ListDetectMitigationActionsExecutionsOutputResponse.nextToken, paginationFunction: self.listDetectMitigationActionsExecutions(input:)) } @@ -501,24 +486,23 @@ extension ListDetectMitigationActionsExecutionsInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `listDetectMitigationActionsExecutionsPaginated` -/// to access the nested member `[IoTClientTypes.DetectMitigationActionExecution]` -/// - Returns: `[IoTClientTypes.DetectMitigationActionExecution]` extension PaginatorSequence where Input == ListDetectMitigationActionsExecutionsInput, Output == ListDetectMitigationActionsExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDetectMitigationActionsExecutionsPaginated` + /// to access the nested member `[IoTClientTypes.DetectMitigationActionExecution]` + /// - Returns: `[IoTClientTypes.DetectMitigationActionExecution]` public func actionsExecutions() async throws -> [IoTClientTypes.DetectMitigationActionExecution] { return try await self.asyncCompactMap { item in item.actionsExecutions } } } - -/// Paginate over `[ListDetectMitigationActionsTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDetectMitigationActionsTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDetectMitigationActionsTasksOutputResponse` extension IoTClient { + /// Paginate over `[ListDetectMitigationActionsTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDetectMitigationActionsTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDetectMitigationActionsTasksOutputResponse` public func listDetectMitigationActionsTasksPaginated(input: ListDetectMitigationActionsTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDetectMitigationActionsTasksInput.nextToken, outputKey: \ListDetectMitigationActionsTasksOutputResponse.nextToken, paginationFunction: self.listDetectMitigationActionsTasks(input:)) } @@ -534,24 +518,23 @@ extension ListDetectMitigationActionsTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDetectMitigationActionsTasksPaginated` -/// to access the nested member `[IoTClientTypes.DetectMitigationActionsTaskSummary]` -/// - Returns: `[IoTClientTypes.DetectMitigationActionsTaskSummary]` extension PaginatorSequence where Input == ListDetectMitigationActionsTasksInput, Output == ListDetectMitigationActionsTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDetectMitigationActionsTasksPaginated` + /// to access the nested member `[IoTClientTypes.DetectMitigationActionsTaskSummary]` + /// - Returns: `[IoTClientTypes.DetectMitigationActionsTaskSummary]` public func tasks() async throws -> [IoTClientTypes.DetectMitigationActionsTaskSummary] { return try await self.asyncCompactMap { item in item.tasks } } } - -/// Paginate over `[ListDimensionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDimensionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDimensionsOutputResponse` extension IoTClient { + /// Paginate over `[ListDimensionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDimensionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDimensionsOutputResponse` public func listDimensionsPaginated(input: ListDimensionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDimensionsInput.nextToken, outputKey: \ListDimensionsOutputResponse.nextToken, paginationFunction: self.listDimensions(input:)) } @@ -565,24 +548,23 @@ extension ListDimensionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDimensionsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDimensionsInput, Output == ListDimensionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDimensionsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func dimensionNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.dimensionNames } } } - -/// Paginate over `[ListDomainConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainConfigurationsOutputResponse` extension IoTClient { + /// Paginate over `[ListDomainConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainConfigurationsOutputResponse` public func listDomainConfigurationsPaginated(input: ListDomainConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainConfigurationsInput.marker, outputKey: \ListDomainConfigurationsOutputResponse.nextMarker, paginationFunction: self.listDomainConfigurations(input:)) } @@ -597,24 +579,23 @@ extension ListDomainConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDomainConfigurationsPaginated` -/// to access the nested member `[IoTClientTypes.DomainConfigurationSummary]` -/// - Returns: `[IoTClientTypes.DomainConfigurationSummary]` extension PaginatorSequence where Input == ListDomainConfigurationsInput, Output == ListDomainConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDomainConfigurationsPaginated` + /// to access the nested member `[IoTClientTypes.DomainConfigurationSummary]` + /// - Returns: `[IoTClientTypes.DomainConfigurationSummary]` public func domainConfigurations() async throws -> [IoTClientTypes.DomainConfigurationSummary] { return try await self.asyncCompactMap { item in item.domainConfigurations } } } - -/// Paginate over `[ListFleetMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFleetMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFleetMetricsOutputResponse` extension IoTClient { + /// Paginate over `[ListFleetMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFleetMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFleetMetricsOutputResponse` public func listFleetMetricsPaginated(input: ListFleetMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFleetMetricsInput.nextToken, outputKey: \ListFleetMetricsOutputResponse.nextToken, paginationFunction: self.listFleetMetrics(input:)) } @@ -628,24 +609,23 @@ extension ListFleetMetricsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFleetMetricsPaginated` -/// to access the nested member `[IoTClientTypes.FleetMetricNameAndArn]` -/// - Returns: `[IoTClientTypes.FleetMetricNameAndArn]` extension PaginatorSequence where Input == ListFleetMetricsInput, Output == ListFleetMetricsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFleetMetricsPaginated` + /// to access the nested member `[IoTClientTypes.FleetMetricNameAndArn]` + /// - Returns: `[IoTClientTypes.FleetMetricNameAndArn]` public func fleetMetrics() async throws -> [IoTClientTypes.FleetMetricNameAndArn] { return try await self.asyncCompactMap { item in item.fleetMetrics } } } - -/// Paginate over `[ListIndicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIndicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIndicesOutputResponse` extension IoTClient { + /// Paginate over `[ListIndicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIndicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIndicesOutputResponse` public func listIndicesPaginated(input: ListIndicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIndicesInput.nextToken, outputKey: \ListIndicesOutputResponse.nextToken, paginationFunction: self.listIndices(input:)) } @@ -659,24 +639,23 @@ extension ListIndicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIndicesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListIndicesInput, Output == ListIndicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIndicesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func indexNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.indexNames } } } - -/// Paginate over `[ListJobExecutionsForJobOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobExecutionsForJobInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobExecutionsForJobOutputResponse` extension IoTClient { + /// Paginate over `[ListJobExecutionsForJobOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobExecutionsForJobInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobExecutionsForJobOutputResponse` public func listJobExecutionsForJobPaginated(input: ListJobExecutionsForJobInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobExecutionsForJobInput.nextToken, outputKey: \ListJobExecutionsForJobOutputResponse.nextToken, paginationFunction: self.listJobExecutionsForJob(input:)) } @@ -692,24 +671,23 @@ extension ListJobExecutionsForJobInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobExecutionsForJobPaginated` -/// to access the nested member `[IoTClientTypes.JobExecutionSummaryForJob]` -/// - Returns: `[IoTClientTypes.JobExecutionSummaryForJob]` extension PaginatorSequence where Input == ListJobExecutionsForJobInput, Output == ListJobExecutionsForJobOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobExecutionsForJobPaginated` + /// to access the nested member `[IoTClientTypes.JobExecutionSummaryForJob]` + /// - Returns: `[IoTClientTypes.JobExecutionSummaryForJob]` public func executionSummaries() async throws -> [IoTClientTypes.JobExecutionSummaryForJob] { return try await self.asyncCompactMap { item in item.executionSummaries } } } - -/// Paginate over `[ListJobExecutionsForThingOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobExecutionsForThingInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobExecutionsForThingOutputResponse` extension IoTClient { + /// Paginate over `[ListJobExecutionsForThingOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobExecutionsForThingInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobExecutionsForThingOutputResponse` public func listJobExecutionsForThingPaginated(input: ListJobExecutionsForThingInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobExecutionsForThingInput.nextToken, outputKey: \ListJobExecutionsForThingOutputResponse.nextToken, paginationFunction: self.listJobExecutionsForThing(input:)) } @@ -727,24 +705,23 @@ extension ListJobExecutionsForThingInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobExecutionsForThingPaginated` -/// to access the nested member `[IoTClientTypes.JobExecutionSummaryForThing]` -/// - Returns: `[IoTClientTypes.JobExecutionSummaryForThing]` extension PaginatorSequence where Input == ListJobExecutionsForThingInput, Output == ListJobExecutionsForThingOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobExecutionsForThingPaginated` + /// to access the nested member `[IoTClientTypes.JobExecutionSummaryForThing]` + /// - Returns: `[IoTClientTypes.JobExecutionSummaryForThing]` public func executionSummaries() async throws -> [IoTClientTypes.JobExecutionSummaryForThing] { return try await self.asyncCompactMap { item in item.executionSummaries } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension IoTClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -763,24 +740,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[IoTClientTypes.JobSummary]` -/// - Returns: `[IoTClientTypes.JobSummary]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[IoTClientTypes.JobSummary]` + /// - Returns: `[IoTClientTypes.JobSummary]` public func jobs() async throws -> [IoTClientTypes.JobSummary] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListJobTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` extension IoTClient { + /// Paginate over `[ListJobTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` public func listJobTemplatesPaginated(input: ListJobTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobTemplatesInput.nextToken, outputKey: \ListJobTemplatesOutputResponse.nextToken, paginationFunction: self.listJobTemplates(input:)) } @@ -794,24 +770,23 @@ extension ListJobTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` -/// to access the nested member `[IoTClientTypes.JobTemplateSummary]` -/// - Returns: `[IoTClientTypes.JobTemplateSummary]` extension PaginatorSequence where Input == ListJobTemplatesInput, Output == ListJobTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` + /// to access the nested member `[IoTClientTypes.JobTemplateSummary]` + /// - Returns: `[IoTClientTypes.JobTemplateSummary]` public func jobTemplates() async throws -> [IoTClientTypes.JobTemplateSummary] { return try await self.asyncCompactMap { item in item.jobTemplates } } } - -/// Paginate over `[ListMetricValuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricValuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricValuesOutputResponse` extension IoTClient { + /// Paginate over `[ListMetricValuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricValuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricValuesOutputResponse` public func listMetricValuesPaginated(input: ListMetricValuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricValuesInput.nextToken, outputKey: \ListMetricValuesOutputResponse.nextToken, paginationFunction: self.listMetricValues(input:)) } @@ -831,24 +806,23 @@ extension ListMetricValuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMetricValuesPaginated` -/// to access the nested member `[IoTClientTypes.MetricDatum]` -/// - Returns: `[IoTClientTypes.MetricDatum]` extension PaginatorSequence where Input == ListMetricValuesInput, Output == ListMetricValuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMetricValuesPaginated` + /// to access the nested member `[IoTClientTypes.MetricDatum]` + /// - Returns: `[IoTClientTypes.MetricDatum]` public func metricDatumList() async throws -> [IoTClientTypes.MetricDatum] { return try await self.asyncCompactMap { item in item.metricDatumList } } } - -/// Paginate over `[ListMitigationActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMitigationActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMitigationActionsOutputResponse` extension IoTClient { + /// Paginate over `[ListMitigationActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMitigationActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMitigationActionsOutputResponse` public func listMitigationActionsPaginated(input: ListMitigationActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMitigationActionsInput.nextToken, outputKey: \ListMitigationActionsOutputResponse.nextToken, paginationFunction: self.listMitigationActions(input:)) } @@ -863,24 +837,23 @@ extension ListMitigationActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMitigationActionsPaginated` -/// to access the nested member `[IoTClientTypes.MitigationActionIdentifier]` -/// - Returns: `[IoTClientTypes.MitigationActionIdentifier]` extension PaginatorSequence where Input == ListMitigationActionsInput, Output == ListMitigationActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMitigationActionsPaginated` + /// to access the nested member `[IoTClientTypes.MitigationActionIdentifier]` + /// - Returns: `[IoTClientTypes.MitigationActionIdentifier]` public func actionIdentifiers() async throws -> [IoTClientTypes.MitigationActionIdentifier] { return try await self.asyncCompactMap { item in item.actionIdentifiers } } } - -/// Paginate over `[ListOTAUpdatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOTAUpdatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOTAUpdatesOutputResponse` extension IoTClient { + /// Paginate over `[ListOTAUpdatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOTAUpdatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOTAUpdatesOutputResponse` public func listOTAUpdatesPaginated(input: ListOTAUpdatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOTAUpdatesInput.nextToken, outputKey: \ListOTAUpdatesOutputResponse.nextToken, paginationFunction: self.listOTAUpdates(input:)) } @@ -895,24 +868,23 @@ extension ListOTAUpdatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOTAUpdatesPaginated` -/// to access the nested member `[IoTClientTypes.OTAUpdateSummary]` -/// - Returns: `[IoTClientTypes.OTAUpdateSummary]` extension PaginatorSequence where Input == ListOTAUpdatesInput, Output == ListOTAUpdatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOTAUpdatesPaginated` + /// to access the nested member `[IoTClientTypes.OTAUpdateSummary]` + /// - Returns: `[IoTClientTypes.OTAUpdateSummary]` public func otaUpdates() async throws -> [IoTClientTypes.OTAUpdateSummary] { return try await self.asyncCompactMap { item in item.otaUpdates } } } - -/// Paginate over `[ListOutgoingCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOutgoingCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOutgoingCertificatesOutputResponse` extension IoTClient { + /// Paginate over `[ListOutgoingCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOutgoingCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOutgoingCertificatesOutputResponse` public func listOutgoingCertificatesPaginated(input: ListOutgoingCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOutgoingCertificatesInput.marker, outputKey: \ListOutgoingCertificatesOutputResponse.nextMarker, paginationFunction: self.listOutgoingCertificates(input:)) } @@ -927,24 +899,23 @@ extension ListOutgoingCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOutgoingCertificatesPaginated` -/// to access the nested member `[IoTClientTypes.OutgoingCertificate]` -/// - Returns: `[IoTClientTypes.OutgoingCertificate]` extension PaginatorSequence where Input == ListOutgoingCertificatesInput, Output == ListOutgoingCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOutgoingCertificatesPaginated` + /// to access the nested member `[IoTClientTypes.OutgoingCertificate]` + /// - Returns: `[IoTClientTypes.OutgoingCertificate]` public func outgoingCertificates() async throws -> [IoTClientTypes.OutgoingCertificate] { return try await self.asyncCompactMap { item in item.outgoingCertificates } } } - -/// Paginate over `[ListPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` extension IoTClient { + /// Paginate over `[ListPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` public func listPoliciesPaginated(input: ListPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoliciesInput.marker, outputKey: \ListPoliciesOutputResponse.nextMarker, paginationFunction: self.listPolicies(input:)) } @@ -959,24 +930,23 @@ extension ListPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` -/// to access the nested member `[IoTClientTypes.Policy]` -/// - Returns: `[IoTClientTypes.Policy]` extension PaginatorSequence where Input == ListPoliciesInput, Output == ListPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPoliciesPaginated` + /// to access the nested member `[IoTClientTypes.Policy]` + /// - Returns: `[IoTClientTypes.Policy]` public func policies() async throws -> [IoTClientTypes.Policy] { return try await self.asyncCompactMap { item in item.policies } } } - -/// Paginate over `[ListPolicyPrincipalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPolicyPrincipalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPolicyPrincipalsOutputResponse` extension IoTClient { + /// Paginate over `[ListPolicyPrincipalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPolicyPrincipalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPolicyPrincipalsOutputResponse` public func listPolicyPrincipalsPaginated(input: ListPolicyPrincipalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPolicyPrincipalsInput.marker, outputKey: \ListPolicyPrincipalsOutputResponse.nextMarker, paginationFunction: self.listPolicyPrincipals(input:)) } @@ -992,24 +962,23 @@ extension ListPolicyPrincipalsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPolicyPrincipalsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListPolicyPrincipalsInput, Output == ListPolicyPrincipalsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPolicyPrincipalsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func principals() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.principals } } } - -/// Paginate over `[ListPrincipalPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPrincipalPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalPoliciesOutputResponse` extension IoTClient { + /// Paginate over `[ListPrincipalPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPrincipalPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalPoliciesOutputResponse` public func listPrincipalPoliciesPaginated(input: ListPrincipalPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPrincipalPoliciesInput.marker, outputKey: \ListPrincipalPoliciesOutputResponse.nextMarker, paginationFunction: self.listPrincipalPolicies(input:)) } @@ -1025,24 +994,23 @@ extension ListPrincipalPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPrincipalPoliciesPaginated` -/// to access the nested member `[IoTClientTypes.Policy]` -/// - Returns: `[IoTClientTypes.Policy]` extension PaginatorSequence where Input == ListPrincipalPoliciesInput, Output == ListPrincipalPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPrincipalPoliciesPaginated` + /// to access the nested member `[IoTClientTypes.Policy]` + /// - Returns: `[IoTClientTypes.Policy]` public func policies() async throws -> [IoTClientTypes.Policy] { return try await self.asyncCompactMap { item in item.policies } } } - -/// Paginate over `[ListPrincipalThingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPrincipalThingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalThingsOutputResponse` extension IoTClient { + /// Paginate over `[ListPrincipalThingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPrincipalThingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalThingsOutputResponse` public func listPrincipalThingsPaginated(input: ListPrincipalThingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPrincipalThingsInput.nextToken, outputKey: \ListPrincipalThingsOutputResponse.nextToken, paginationFunction: self.listPrincipalThings(input:)) } @@ -1057,24 +1025,23 @@ extension ListPrincipalThingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPrincipalThingsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListPrincipalThingsInput, Output == ListPrincipalThingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPrincipalThingsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func things() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.things } } } - -/// Paginate over `[ListProvisioningTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProvisioningTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningTemplatesOutputResponse` extension IoTClient { + /// Paginate over `[ListProvisioningTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProvisioningTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningTemplatesOutputResponse` public func listProvisioningTemplatesPaginated(input: ListProvisioningTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProvisioningTemplatesInput.nextToken, outputKey: \ListProvisioningTemplatesOutputResponse.nextToken, paginationFunction: self.listProvisioningTemplates(input:)) } @@ -1088,24 +1055,23 @@ extension ListProvisioningTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProvisioningTemplatesPaginated` -/// to access the nested member `[IoTClientTypes.ProvisioningTemplateSummary]` -/// - Returns: `[IoTClientTypes.ProvisioningTemplateSummary]` extension PaginatorSequence where Input == ListProvisioningTemplatesInput, Output == ListProvisioningTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProvisioningTemplatesPaginated` + /// to access the nested member `[IoTClientTypes.ProvisioningTemplateSummary]` + /// - Returns: `[IoTClientTypes.ProvisioningTemplateSummary]` public func templates() async throws -> [IoTClientTypes.ProvisioningTemplateSummary] { return try await self.asyncCompactMap { item in item.templates } } } - -/// Paginate over `[ListProvisioningTemplateVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProvisioningTemplateVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningTemplateVersionsOutputResponse` extension IoTClient { + /// Paginate over `[ListProvisioningTemplateVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProvisioningTemplateVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningTemplateVersionsOutputResponse` public func listProvisioningTemplateVersionsPaginated(input: ListProvisioningTemplateVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProvisioningTemplateVersionsInput.nextToken, outputKey: \ListProvisioningTemplateVersionsOutputResponse.nextToken, paginationFunction: self.listProvisioningTemplateVersions(input:)) } @@ -1120,24 +1086,23 @@ extension ListProvisioningTemplateVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProvisioningTemplateVersionsPaginated` -/// to access the nested member `[IoTClientTypes.ProvisioningTemplateVersionSummary]` -/// - Returns: `[IoTClientTypes.ProvisioningTemplateVersionSummary]` extension PaginatorSequence where Input == ListProvisioningTemplateVersionsInput, Output == ListProvisioningTemplateVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProvisioningTemplateVersionsPaginated` + /// to access the nested member `[IoTClientTypes.ProvisioningTemplateVersionSummary]` + /// - Returns: `[IoTClientTypes.ProvisioningTemplateVersionSummary]` public func versions() async throws -> [IoTClientTypes.ProvisioningTemplateVersionSummary] { return try await self.asyncCompactMap { item in item.versions } } } - -/// Paginate over `[ListRoleAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoleAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoleAliasesOutputResponse` extension IoTClient { + /// Paginate over `[ListRoleAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoleAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoleAliasesOutputResponse` public func listRoleAliasesPaginated(input: ListRoleAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoleAliasesInput.marker, outputKey: \ListRoleAliasesOutputResponse.nextMarker, paginationFunction: self.listRoleAliases(input:)) } @@ -1152,24 +1117,23 @@ extension ListRoleAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRoleAliasesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListRoleAliasesInput, Output == ListRoleAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRoleAliasesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func roleAliases() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.roleAliases } } } - -/// Paginate over `[ListScheduledAuditsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListScheduledAuditsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListScheduledAuditsOutputResponse` extension IoTClient { + /// Paginate over `[ListScheduledAuditsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListScheduledAuditsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListScheduledAuditsOutputResponse` public func listScheduledAuditsPaginated(input: ListScheduledAuditsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListScheduledAuditsInput.nextToken, outputKey: \ListScheduledAuditsOutputResponse.nextToken, paginationFunction: self.listScheduledAudits(input:)) } @@ -1183,24 +1147,23 @@ extension ListScheduledAuditsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listScheduledAuditsPaginated` -/// to access the nested member `[IoTClientTypes.ScheduledAuditMetadata]` -/// - Returns: `[IoTClientTypes.ScheduledAuditMetadata]` extension PaginatorSequence where Input == ListScheduledAuditsInput, Output == ListScheduledAuditsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listScheduledAuditsPaginated` + /// to access the nested member `[IoTClientTypes.ScheduledAuditMetadata]` + /// - Returns: `[IoTClientTypes.ScheduledAuditMetadata]` public func scheduledAudits() async throws -> [IoTClientTypes.ScheduledAuditMetadata] { return try await self.asyncCompactMap { item in item.scheduledAudits } } } - -/// Paginate over `[ListSecurityProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesOutputResponse` extension IoTClient { + /// Paginate over `[ListSecurityProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesOutputResponse` public func listSecurityProfilesPaginated(input: ListSecurityProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityProfilesInput.nextToken, outputKey: \ListSecurityProfilesOutputResponse.nextToken, paginationFunction: self.listSecurityProfiles(input:)) } @@ -1216,24 +1179,23 @@ extension ListSecurityProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesPaginated` -/// to access the nested member `[IoTClientTypes.SecurityProfileIdentifier]` -/// - Returns: `[IoTClientTypes.SecurityProfileIdentifier]` extension PaginatorSequence where Input == ListSecurityProfilesInput, Output == ListSecurityProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesPaginated` + /// to access the nested member `[IoTClientTypes.SecurityProfileIdentifier]` + /// - Returns: `[IoTClientTypes.SecurityProfileIdentifier]` public func securityProfileIdentifiers() async throws -> [IoTClientTypes.SecurityProfileIdentifier] { return try await self.asyncCompactMap { item in item.securityProfileIdentifiers } } } - -/// Paginate over `[ListSecurityProfilesForTargetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityProfilesForTargetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesForTargetOutputResponse` extension IoTClient { + /// Paginate over `[ListSecurityProfilesForTargetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityProfilesForTargetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityProfilesForTargetOutputResponse` public func listSecurityProfilesForTargetPaginated(input: ListSecurityProfilesForTargetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityProfilesForTargetInput.nextToken, outputKey: \ListSecurityProfilesForTargetOutputResponse.nextToken, paginationFunction: self.listSecurityProfilesForTarget(input:)) } @@ -1249,24 +1211,23 @@ extension ListSecurityProfilesForTargetInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesForTargetPaginated` -/// to access the nested member `[IoTClientTypes.SecurityProfileTargetMapping]` -/// - Returns: `[IoTClientTypes.SecurityProfileTargetMapping]` extension PaginatorSequence where Input == ListSecurityProfilesForTargetInput, Output == ListSecurityProfilesForTargetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityProfilesForTargetPaginated` + /// to access the nested member `[IoTClientTypes.SecurityProfileTargetMapping]` + /// - Returns: `[IoTClientTypes.SecurityProfileTargetMapping]` public func securityProfileTargetMappings() async throws -> [IoTClientTypes.SecurityProfileTargetMapping] { return try await self.asyncCompactMap { item in item.securityProfileTargetMappings } } } - -/// Paginate over `[ListStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` extension IoTClient { + /// Paginate over `[ListStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` public func listStreamsPaginated(input: ListStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamsInput.nextToken, outputKey: \ListStreamsOutputResponse.nextToken, paginationFunction: self.listStreams(input:)) } @@ -1281,24 +1242,23 @@ extension ListStreamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStreamsPaginated` -/// to access the nested member `[IoTClientTypes.StreamSummary]` -/// - Returns: `[IoTClientTypes.StreamSummary]` extension PaginatorSequence where Input == ListStreamsInput, Output == ListStreamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStreamsPaginated` + /// to access the nested member `[IoTClientTypes.StreamSummary]` + /// - Returns: `[IoTClientTypes.StreamSummary]` public func streams() async throws -> [IoTClientTypes.StreamSummary] { return try await self.asyncCompactMap { item in item.streams } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension IoTClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -1312,24 +1272,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[IoTClientTypes.Tag]` -/// - Returns: `[IoTClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[IoTClientTypes.Tag]` + /// - Returns: `[IoTClientTypes.Tag]` public func tags() async throws -> [IoTClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListTargetsForPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetsForPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForPolicyOutputResponse` extension IoTClient { + /// Paginate over `[ListTargetsForPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetsForPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForPolicyOutputResponse` public func listTargetsForPolicyPaginated(input: ListTargetsForPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetsForPolicyInput.marker, outputKey: \ListTargetsForPolicyOutputResponse.nextMarker, paginationFunction: self.listTargetsForPolicy(input:)) } @@ -1344,24 +1303,23 @@ extension ListTargetsForPolicyInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTargetsForPolicyPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListTargetsForPolicyInput, Output == ListTargetsForPolicyOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTargetsForPolicyPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func targets() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.targets } } } - -/// Paginate over `[ListTargetsForSecurityProfileOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetsForSecurityProfileInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForSecurityProfileOutputResponse` extension IoTClient { + /// Paginate over `[ListTargetsForSecurityProfileOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetsForSecurityProfileInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForSecurityProfileOutputResponse` public func listTargetsForSecurityProfilePaginated(input: ListTargetsForSecurityProfileInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetsForSecurityProfileInput.nextToken, outputKey: \ListTargetsForSecurityProfileOutputResponse.nextToken, paginationFunction: self.listTargetsForSecurityProfile(input:)) } @@ -1376,24 +1334,23 @@ extension ListTargetsForSecurityProfileInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTargetsForSecurityProfilePaginated` -/// to access the nested member `[IoTClientTypes.SecurityProfileTarget]` -/// - Returns: `[IoTClientTypes.SecurityProfileTarget]` extension PaginatorSequence where Input == ListTargetsForSecurityProfileInput, Output == ListTargetsForSecurityProfileOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTargetsForSecurityProfilePaginated` + /// to access the nested member `[IoTClientTypes.SecurityProfileTarget]` + /// - Returns: `[IoTClientTypes.SecurityProfileTarget]` public func securityProfileTargets() async throws -> [IoTClientTypes.SecurityProfileTarget] { return try await self.asyncCompactMap { item in item.securityProfileTargets } } } - -/// Paginate over `[ListThingGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingGroupsOutputResponse` extension IoTClient { + /// Paginate over `[ListThingGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingGroupsOutputResponse` public func listThingGroupsPaginated(input: ListThingGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingGroupsInput.nextToken, outputKey: \ListThingGroupsOutputResponse.nextToken, paginationFunction: self.listThingGroups(input:)) } @@ -1410,24 +1367,23 @@ extension ListThingGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingGroupsPaginated` -/// to access the nested member `[IoTClientTypes.GroupNameAndArn]` -/// - Returns: `[IoTClientTypes.GroupNameAndArn]` extension PaginatorSequence where Input == ListThingGroupsInput, Output == ListThingGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingGroupsPaginated` + /// to access the nested member `[IoTClientTypes.GroupNameAndArn]` + /// - Returns: `[IoTClientTypes.GroupNameAndArn]` public func thingGroups() async throws -> [IoTClientTypes.GroupNameAndArn] { return try await self.asyncCompactMap { item in item.thingGroups } } } - -/// Paginate over `[ListThingGroupsForThingOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingGroupsForThingInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingGroupsForThingOutputResponse` extension IoTClient { + /// Paginate over `[ListThingGroupsForThingOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingGroupsForThingInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingGroupsForThingOutputResponse` public func listThingGroupsForThingPaginated(input: ListThingGroupsForThingInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingGroupsForThingInput.nextToken, outputKey: \ListThingGroupsForThingOutputResponse.nextToken, paginationFunction: self.listThingGroupsForThing(input:)) } @@ -1442,24 +1398,23 @@ extension ListThingGroupsForThingInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingGroupsForThingPaginated` -/// to access the nested member `[IoTClientTypes.GroupNameAndArn]` -/// - Returns: `[IoTClientTypes.GroupNameAndArn]` extension PaginatorSequence where Input == ListThingGroupsForThingInput, Output == ListThingGroupsForThingOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingGroupsForThingPaginated` + /// to access the nested member `[IoTClientTypes.GroupNameAndArn]` + /// - Returns: `[IoTClientTypes.GroupNameAndArn]` public func thingGroups() async throws -> [IoTClientTypes.GroupNameAndArn] { return try await self.asyncCompactMap { item in item.thingGroups } } } - -/// Paginate over `[ListThingPrincipalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingPrincipalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingPrincipalsOutputResponse` extension IoTClient { + /// Paginate over `[ListThingPrincipalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingPrincipalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingPrincipalsOutputResponse` public func listThingPrincipalsPaginated(input: ListThingPrincipalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingPrincipalsInput.nextToken, outputKey: \ListThingPrincipalsOutputResponse.nextToken, paginationFunction: self.listThingPrincipals(input:)) } @@ -1474,24 +1429,23 @@ extension ListThingPrincipalsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingPrincipalsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThingPrincipalsInput, Output == ListThingPrincipalsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingPrincipalsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func principals() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.principals } } } - -/// Paginate over `[ListThingRegistrationTaskReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingRegistrationTaskReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingRegistrationTaskReportsOutputResponse` extension IoTClient { + /// Paginate over `[ListThingRegistrationTaskReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingRegistrationTaskReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingRegistrationTaskReportsOutputResponse` public func listThingRegistrationTaskReportsPaginated(input: ListThingRegistrationTaskReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingRegistrationTaskReportsInput.nextToken, outputKey: \ListThingRegistrationTaskReportsOutputResponse.nextToken, paginationFunction: self.listThingRegistrationTaskReports(input:)) } @@ -1507,24 +1461,23 @@ extension ListThingRegistrationTaskReportsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingRegistrationTaskReportsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThingRegistrationTaskReportsInput, Output == ListThingRegistrationTaskReportsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingRegistrationTaskReportsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func resourceLinks() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.resourceLinks } } } - -/// Paginate over `[ListThingRegistrationTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingRegistrationTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingRegistrationTasksOutputResponse` extension IoTClient { + /// Paginate over `[ListThingRegistrationTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingRegistrationTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingRegistrationTasksOutputResponse` public func listThingRegistrationTasksPaginated(input: ListThingRegistrationTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingRegistrationTasksInput.nextToken, outputKey: \ListThingRegistrationTasksOutputResponse.nextToken, paginationFunction: self.listThingRegistrationTasks(input:)) } @@ -1539,24 +1492,23 @@ extension ListThingRegistrationTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingRegistrationTasksPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThingRegistrationTasksInput, Output == ListThingRegistrationTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingRegistrationTasksPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func taskIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.taskIds } } } - -/// Paginate over `[ListThingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingsOutputResponse` extension IoTClient { + /// Paginate over `[ListThingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingsOutputResponse` public func listThingsPaginated(input: ListThingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingsInput.nextToken, outputKey: \ListThingsOutputResponse.nextToken, paginationFunction: self.listThings(input:)) } @@ -1574,24 +1526,23 @@ extension ListThingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingsPaginated` -/// to access the nested member `[IoTClientTypes.ThingAttribute]` -/// - Returns: `[IoTClientTypes.ThingAttribute]` extension PaginatorSequence where Input == ListThingsInput, Output == ListThingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingsPaginated` + /// to access the nested member `[IoTClientTypes.ThingAttribute]` + /// - Returns: `[IoTClientTypes.ThingAttribute]` public func things() async throws -> [IoTClientTypes.ThingAttribute] { return try await self.asyncCompactMap { item in item.things } } } - -/// Paginate over `[ListThingsInBillingGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingsInBillingGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingsInBillingGroupOutputResponse` extension IoTClient { + /// Paginate over `[ListThingsInBillingGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingsInBillingGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingsInBillingGroupOutputResponse` public func listThingsInBillingGroupPaginated(input: ListThingsInBillingGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingsInBillingGroupInput.nextToken, outputKey: \ListThingsInBillingGroupOutputResponse.nextToken, paginationFunction: self.listThingsInBillingGroup(input:)) } @@ -1606,24 +1557,23 @@ extension ListThingsInBillingGroupInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingsInBillingGroupPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThingsInBillingGroupInput, Output == ListThingsInBillingGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingsInBillingGroupPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func things() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.things } } } - -/// Paginate over `[ListThingsInThingGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingsInThingGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingsInThingGroupOutputResponse` extension IoTClient { + /// Paginate over `[ListThingsInThingGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingsInThingGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingsInThingGroupOutputResponse` public func listThingsInThingGroupPaginated(input: ListThingsInThingGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingsInThingGroupInput.nextToken, outputKey: \ListThingsInThingGroupOutputResponse.nextToken, paginationFunction: self.listThingsInThingGroup(input:)) } @@ -1639,24 +1589,23 @@ extension ListThingsInThingGroupInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingsInThingGroupPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListThingsInThingGroupInput, Output == ListThingsInThingGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingsInThingGroupPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func things() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.things } } } - -/// Paginate over `[ListThingTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThingTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThingTypesOutputResponse` extension IoTClient { + /// Paginate over `[ListThingTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThingTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThingTypesOutputResponse` public func listThingTypesPaginated(input: ListThingTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThingTypesInput.nextToken, outputKey: \ListThingTypesOutputResponse.nextToken, paginationFunction: self.listThingTypes(input:)) } @@ -1671,24 +1620,23 @@ extension ListThingTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThingTypesPaginated` -/// to access the nested member `[IoTClientTypes.ThingTypeDefinition]` -/// - Returns: `[IoTClientTypes.ThingTypeDefinition]` extension PaginatorSequence where Input == ListThingTypesInput, Output == ListThingTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThingTypesPaginated` + /// to access the nested member `[IoTClientTypes.ThingTypeDefinition]` + /// - Returns: `[IoTClientTypes.ThingTypeDefinition]` public func thingTypes() async throws -> [IoTClientTypes.ThingTypeDefinition] { return try await self.asyncCompactMap { item in item.thingTypes } } } - -/// Paginate over `[ListTopicRuleDestinationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTopicRuleDestinationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTopicRuleDestinationsOutputResponse` extension IoTClient { + /// Paginate over `[ListTopicRuleDestinationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTopicRuleDestinationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTopicRuleDestinationsOutputResponse` public func listTopicRuleDestinationsPaginated(input: ListTopicRuleDestinationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTopicRuleDestinationsInput.nextToken, outputKey: \ListTopicRuleDestinationsOutputResponse.nextToken, paginationFunction: self.listTopicRuleDestinations(input:)) } @@ -1702,24 +1650,23 @@ extension ListTopicRuleDestinationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTopicRuleDestinationsPaginated` -/// to access the nested member `[IoTClientTypes.TopicRuleDestinationSummary]` -/// - Returns: `[IoTClientTypes.TopicRuleDestinationSummary]` extension PaginatorSequence where Input == ListTopicRuleDestinationsInput, Output == ListTopicRuleDestinationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTopicRuleDestinationsPaginated` + /// to access the nested member `[IoTClientTypes.TopicRuleDestinationSummary]` + /// - Returns: `[IoTClientTypes.TopicRuleDestinationSummary]` public func destinationSummaries() async throws -> [IoTClientTypes.TopicRuleDestinationSummary] { return try await self.asyncCompactMap { item in item.destinationSummaries } } } - -/// Paginate over `[ListTopicRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTopicRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTopicRulesOutputResponse` extension IoTClient { + /// Paginate over `[ListTopicRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTopicRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTopicRulesOutputResponse` public func listTopicRulesPaginated(input: ListTopicRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTopicRulesInput.nextToken, outputKey: \ListTopicRulesOutputResponse.nextToken, paginationFunction: self.listTopicRules(input:)) } @@ -1735,24 +1682,23 @@ extension ListTopicRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTopicRulesPaginated` -/// to access the nested member `[IoTClientTypes.TopicRuleListItem]` -/// - Returns: `[IoTClientTypes.TopicRuleListItem]` extension PaginatorSequence where Input == ListTopicRulesInput, Output == ListTopicRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTopicRulesPaginated` + /// to access the nested member `[IoTClientTypes.TopicRuleListItem]` + /// - Returns: `[IoTClientTypes.TopicRuleListItem]` public func rules() async throws -> [IoTClientTypes.TopicRuleListItem] { return try await self.asyncCompactMap { item in item.rules } } } - -/// Paginate over `[ListV2LoggingLevelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListV2LoggingLevelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListV2LoggingLevelsOutputResponse` extension IoTClient { + /// Paginate over `[ListV2LoggingLevelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListV2LoggingLevelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListV2LoggingLevelsOutputResponse` public func listV2LoggingLevelsPaginated(input: ListV2LoggingLevelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListV2LoggingLevelsInput.nextToken, outputKey: \ListV2LoggingLevelsOutputResponse.nextToken, paginationFunction: self.listV2LoggingLevels(input:)) } @@ -1767,24 +1713,23 @@ extension ListV2LoggingLevelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listV2LoggingLevelsPaginated` -/// to access the nested member `[IoTClientTypes.LogTargetConfiguration]` -/// - Returns: `[IoTClientTypes.LogTargetConfiguration]` extension PaginatorSequence where Input == ListV2LoggingLevelsInput, Output == ListV2LoggingLevelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listV2LoggingLevelsPaginated` + /// to access the nested member `[IoTClientTypes.LogTargetConfiguration]` + /// - Returns: `[IoTClientTypes.LogTargetConfiguration]` public func logTargetConfigurations() async throws -> [IoTClientTypes.LogTargetConfiguration] { return try await self.asyncCompactMap { item in item.logTargetConfigurations } } } - -/// Paginate over `[ListViolationEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListViolationEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListViolationEventsOutputResponse` extension IoTClient { + /// Paginate over `[ListViolationEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListViolationEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListViolationEventsOutputResponse` public func listViolationEventsPaginated(input: ListViolationEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListViolationEventsInput.nextToken, outputKey: \ListViolationEventsOutputResponse.nextToken, paginationFunction: self.listViolationEvents(input:)) } @@ -1805,10 +1750,10 @@ extension ListViolationEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listViolationEventsPaginated` -/// to access the nested member `[IoTClientTypes.ViolationEvent]` -/// - Returns: `[IoTClientTypes.ViolationEvent]` extension PaginatorSequence where Input == ListViolationEventsInput, Output == ListViolationEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listViolationEventsPaginated` + /// to access the nested member `[IoTClientTypes.ViolationEvent]` + /// - Returns: `[IoTClientTypes.ViolationEvent]` public func violationEvents() async throws -> [IoTClientTypes.ViolationEvent] { return try await self.asyncCompactMap { item in item.violationEvents } } diff --git a/Sources/Services/AWSIoT1ClickProjects/Paginators.swift b/Sources/Services/AWSIoT1ClickProjects/Paginators.swift index a80caa285e4..1380494b0a4 100644 --- a/Sources/Services/AWSIoT1ClickProjects/Paginators.swift +++ b/Sources/Services/AWSIoT1ClickProjects/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListPlacementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPlacementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPlacementsOutputResponse` extension IoT1ClickProjectsClient { + /// Paginate over `[ListPlacementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPlacementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPlacementsOutputResponse` public func listPlacementsPaginated(input: ListPlacementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPlacementsInput.nextToken, outputKey: \ListPlacementsOutputResponse.nextToken, paginationFunction: self.listPlacements(input:)) } @@ -26,24 +25,23 @@ extension ListPlacementsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPlacementsPaginated` -/// to access the nested member `[IoT1ClickProjectsClientTypes.PlacementSummary]` -/// - Returns: `[IoT1ClickProjectsClientTypes.PlacementSummary]` extension PaginatorSequence where Input == ListPlacementsInput, Output == ListPlacementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPlacementsPaginated` + /// to access the nested member `[IoT1ClickProjectsClientTypes.PlacementSummary]` + /// - Returns: `[IoT1ClickProjectsClientTypes.PlacementSummary]` public func placements() async throws -> [IoT1ClickProjectsClientTypes.PlacementSummary] { return try await self.asyncCompactMap { item in item.placements } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension IoT1ClickProjectsClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -57,10 +55,10 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[IoT1ClickProjectsClientTypes.ProjectSummary]` -/// - Returns: `[IoT1ClickProjectsClientTypes.ProjectSummary]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[IoT1ClickProjectsClientTypes.ProjectSummary]` + /// - Returns: `[IoT1ClickProjectsClientTypes.ProjectSummary]` public func projects() async throws -> [IoT1ClickProjectsClientTypes.ProjectSummary] { return try await self.asyncCompactMap { item in item.projects } } diff --git a/Sources/Services/AWSIoTAnalytics/Paginators.swift b/Sources/Services/AWSIoTAnalytics/Paginators.swift index 28674e5060c..9feba8f50c9 100644 --- a/Sources/Services/AWSIoTAnalytics/Paginators.swift +++ b/Sources/Services/AWSIoTAnalytics/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension IoTAnalyticsClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -24,16 +23,15 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDatasetContentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetContentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetContentsOutputResponse` extension IoTAnalyticsClient { + /// Paginate over `[ListDatasetContentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetContentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetContentsOutputResponse` public func listDatasetContentsPaginated(input: ListDatasetContentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetContentsInput.nextToken, outputKey: \ListDatasetContentsOutputResponse.nextToken, paginationFunction: self.listDatasetContents(input:)) } @@ -49,16 +47,15 @@ extension ListDatasetContentsInput: ClientRuntime.PaginateToken { scheduledOnOrAfter: self.scheduledOnOrAfter )} } - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension IoTAnalyticsClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -71,16 +68,15 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDatastoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatastoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatastoresOutputResponse` extension IoTAnalyticsClient { + /// Paginate over `[ListDatastoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatastoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatastoresOutputResponse` public func listDatastoresPaginated(input: ListDatastoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatastoresInput.nextToken, outputKey: \ListDatastoresOutputResponse.nextToken, paginationFunction: self.listDatastores(input:)) } @@ -93,16 +89,15 @@ extension ListDatastoresInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` extension IoTAnalyticsClient { + /// Paginate over `[ListPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` public func listPipelinesPaginated(input: ListPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelinesInput.nextToken, outputKey: \ListPipelinesOutputResponse.nextToken, paginationFunction: self.listPipelines(input:)) } diff --git a/Sources/Services/AWSIoTDataPlane/Paginators.swift b/Sources/Services/AWSIoTDataPlane/Paginators.swift index d13b618dc8b..ecd78398061 100644 --- a/Sources/Services/AWSIoTDataPlane/Paginators.swift +++ b/Sources/Services/AWSIoTDataPlane/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListRetainedMessagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRetainedMessagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRetainedMessagesOutputResponse` extension IoTDataPlaneClient { + /// Paginate over `[ListRetainedMessagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRetainedMessagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRetainedMessagesOutputResponse` public func listRetainedMessagesPaginated(input: ListRetainedMessagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRetainedMessagesInput.nextToken, outputKey: \ListRetainedMessagesOutputResponse.nextToken, paginationFunction: self.listRetainedMessages(input:)) } @@ -25,10 +24,10 @@ extension ListRetainedMessagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRetainedMessagesPaginated` -/// to access the nested member `[IoTDataPlaneClientTypes.RetainedMessageSummary]` -/// - Returns: `[IoTDataPlaneClientTypes.RetainedMessageSummary]` extension PaginatorSequence where Input == ListRetainedMessagesInput, Output == ListRetainedMessagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRetainedMessagesPaginated` + /// to access the nested member `[IoTDataPlaneClientTypes.RetainedMessageSummary]` + /// - Returns: `[IoTDataPlaneClientTypes.RetainedMessageSummary]` public func retainedTopics() async throws -> [IoTDataPlaneClientTypes.RetainedMessageSummary] { return try await self.asyncCompactMap { item in item.retainedTopics } } diff --git a/Sources/Services/AWSIoTFleetHub/Paginators.swift b/Sources/Services/AWSIoTFleetHub/Paginators.swift index ef5f740c135..648fb7a26f1 100644 --- a/Sources/Services/AWSIoTFleetHub/Paginators.swift +++ b/Sources/Services/AWSIoTFleetHub/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension IoTFleetHubClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } diff --git a/Sources/Services/AWSIoTFleetWise/Paginators.swift b/Sources/Services/AWSIoTFleetWise/Paginators.swift index 3fcb7e1638c..d850d0dbc78 100644 --- a/Sources/Services/AWSIoTFleetWise/Paginators.swift +++ b/Sources/Services/AWSIoTFleetWise/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetVehicleStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetVehicleStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetVehicleStatusOutputResponse` extension IoTFleetWiseClient { + /// Paginate over `[GetVehicleStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetVehicleStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetVehicleStatusOutputResponse` public func getVehicleStatusPaginated(input: GetVehicleStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetVehicleStatusInput.nextToken, outputKey: \GetVehicleStatusOutputResponse.nextToken, paginationFunction: self.getVehicleStatus(input:)) } @@ -26,10 +25,10 @@ extension GetVehicleStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getVehicleStatusPaginated` -/// to access the nested member `[IoTFleetWiseClientTypes.VehicleStatus]` -/// - Returns: `[IoTFleetWiseClientTypes.VehicleStatus]` extension PaginatorSequence where Input == GetVehicleStatusInput, Output == GetVehicleStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getVehicleStatusPaginated` + /// to access the nested member `[IoTFleetWiseClientTypes.VehicleStatus]` + /// - Returns: `[IoTFleetWiseClientTypes.VehicleStatus]` public func campaigns() async throws -> [IoTFleetWiseClientTypes.VehicleStatus] { return try await self.asyncCompactMap { item in item.campaigns } } diff --git a/Sources/Services/AWSIoTRoboRunner/Paginators.swift b/Sources/Services/AWSIoTRoboRunner/Paginators.swift index 4a11a57162d..26b3f73a484 100644 --- a/Sources/Services/AWSIoTRoboRunner/Paginators.swift +++ b/Sources/Services/AWSIoTRoboRunner/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListWorkersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkersOutputResponse` extension IoTRoboRunnerClient { + /// Paginate over `[ListWorkersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkersOutputResponse` public func listWorkersPaginated(input: ListWorkersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkersInput.nextToken, outputKey: \ListWorkersOutputResponse.nextToken, paginationFunction: self.listWorkers(input:)) } @@ -27,10 +26,10 @@ extension ListWorkersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkersPaginated` -/// to access the nested member `[IoTRoboRunnerClientTypes.Worker]` -/// - Returns: `[IoTRoboRunnerClientTypes.Worker]` extension PaginatorSequence where Input == ListWorkersInput, Output == ListWorkersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkersPaginated` + /// to access the nested member `[IoTRoboRunnerClientTypes.Worker]` + /// - Returns: `[IoTRoboRunnerClientTypes.Worker]` public func workers() async throws -> [IoTRoboRunnerClientTypes.Worker] { return try await self.asyncCompactMap { item in item.workers } } diff --git a/Sources/Services/AWSIoTSecureTunneling/Paginators.swift b/Sources/Services/AWSIoTSecureTunneling/Paginators.swift index 30890dfdb81..89890aa05de 100644 --- a/Sources/Services/AWSIoTSecureTunneling/Paginators.swift +++ b/Sources/Services/AWSIoTSecureTunneling/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListTunnelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTunnelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTunnelsOutputResponse` extension IoTSecureTunnelingClient { + /// Paginate over `[ListTunnelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTunnelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTunnelsOutputResponse` public func listTunnelsPaginated(input: ListTunnelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTunnelsInput.nextToken, outputKey: \ListTunnelsOutputResponse.nextToken, paginationFunction: self.listTunnels(input:)) } diff --git a/Sources/Services/AWSIoTSiteWise/Paginators.swift b/Sources/Services/AWSIoTSiteWise/Paginators.swift index 2feae706933..0d2d5eb01ea 100644 --- a/Sources/Services/AWSIoTSiteWise/Paginators.swift +++ b/Sources/Services/AWSIoTSiteWise/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[BatchGetAssetPropertyAggregatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[BatchGetAssetPropertyAggregatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyAggregatesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[BatchGetAssetPropertyAggregatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[BatchGetAssetPropertyAggregatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyAggregatesOutputResponse` public func batchGetAssetPropertyAggregatesPaginated(input: BatchGetAssetPropertyAggregatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \BatchGetAssetPropertyAggregatesInput.nextToken, outputKey: \BatchGetAssetPropertyAggregatesOutputResponse.nextToken, paginationFunction: self.batchGetAssetPropertyAggregates(input:)) } @@ -25,16 +24,15 @@ extension BatchGetAssetPropertyAggregatesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[BatchGetAssetPropertyValueOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[BatchGetAssetPropertyValueInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyValueOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[BatchGetAssetPropertyValueOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[BatchGetAssetPropertyValueInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyValueOutputResponse` public func batchGetAssetPropertyValuePaginated(input: BatchGetAssetPropertyValueInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \BatchGetAssetPropertyValueInput.nextToken, outputKey: \BatchGetAssetPropertyValueOutputResponse.nextToken, paginationFunction: self.batchGetAssetPropertyValue(input:)) } @@ -47,16 +45,15 @@ extension BatchGetAssetPropertyValueInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[BatchGetAssetPropertyValueHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[BatchGetAssetPropertyValueHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyValueHistoryOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[BatchGetAssetPropertyValueHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[BatchGetAssetPropertyValueHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `BatchGetAssetPropertyValueHistoryOutputResponse` public func batchGetAssetPropertyValueHistoryPaginated(input: BatchGetAssetPropertyValueHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \BatchGetAssetPropertyValueHistoryInput.nextToken, outputKey: \BatchGetAssetPropertyValueHistoryOutputResponse.nextToken, paginationFunction: self.batchGetAssetPropertyValueHistory(input:)) } @@ -70,16 +67,15 @@ extension BatchGetAssetPropertyValueHistoryInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetAssetPropertyAggregatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAssetPropertyAggregatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAssetPropertyAggregatesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[GetAssetPropertyAggregatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAssetPropertyAggregatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAssetPropertyAggregatesOutputResponse` public func getAssetPropertyAggregatesPaginated(input: GetAssetPropertyAggregatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAssetPropertyAggregatesInput.nextToken, outputKey: \GetAssetPropertyAggregatesOutputResponse.nextToken, paginationFunction: self.getAssetPropertyAggregates(input:)) } @@ -102,24 +98,23 @@ extension GetAssetPropertyAggregatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getAssetPropertyAggregatesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AggregatedValue]` -/// - Returns: `[IoTSiteWiseClientTypes.AggregatedValue]` extension PaginatorSequence where Input == GetAssetPropertyAggregatesInput, Output == GetAssetPropertyAggregatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getAssetPropertyAggregatesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AggregatedValue]` + /// - Returns: `[IoTSiteWiseClientTypes.AggregatedValue]` public func aggregatedValues() async throws -> [IoTSiteWiseClientTypes.AggregatedValue] { return try await self.asyncCompactMap { item in item.aggregatedValues } } } - -/// Paginate over `[GetAssetPropertyValueHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAssetPropertyValueHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAssetPropertyValueHistoryOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[GetAssetPropertyValueHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAssetPropertyValueHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAssetPropertyValueHistoryOutputResponse` public func getAssetPropertyValueHistoryPaginated(input: GetAssetPropertyValueHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAssetPropertyValueHistoryInput.nextToken, outputKey: \GetAssetPropertyValueHistoryOutputResponse.nextToken, paginationFunction: self.getAssetPropertyValueHistory(input:)) } @@ -140,24 +135,23 @@ extension GetAssetPropertyValueHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getAssetPropertyValueHistoryPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetPropertyValue]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetPropertyValue]` extension PaginatorSequence where Input == GetAssetPropertyValueHistoryInput, Output == GetAssetPropertyValueHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getAssetPropertyValueHistoryPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetPropertyValue]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetPropertyValue]` public func assetPropertyValueHistory() async throws -> [IoTSiteWiseClientTypes.AssetPropertyValue] { return try await self.asyncCompactMap { item in item.assetPropertyValueHistory } } } - -/// Paginate over `[GetInterpolatedAssetPropertyValuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInterpolatedAssetPropertyValuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInterpolatedAssetPropertyValuesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[GetInterpolatedAssetPropertyValuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInterpolatedAssetPropertyValuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInterpolatedAssetPropertyValuesOutputResponse` public func getInterpolatedAssetPropertyValuesPaginated(input: GetInterpolatedAssetPropertyValuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInterpolatedAssetPropertyValuesInput.nextToken, outputKey: \GetInterpolatedAssetPropertyValuesOutputResponse.nextToken, paginationFunction: self.getInterpolatedAssetPropertyValues(input:)) } @@ -182,24 +176,23 @@ extension GetInterpolatedAssetPropertyValuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getInterpolatedAssetPropertyValuesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.InterpolatedAssetPropertyValue]` -/// - Returns: `[IoTSiteWiseClientTypes.InterpolatedAssetPropertyValue]` extension PaginatorSequence where Input == GetInterpolatedAssetPropertyValuesInput, Output == GetInterpolatedAssetPropertyValuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getInterpolatedAssetPropertyValuesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.InterpolatedAssetPropertyValue]` + /// - Returns: `[IoTSiteWiseClientTypes.InterpolatedAssetPropertyValue]` public func interpolatedAssetPropertyValues() async throws -> [IoTSiteWiseClientTypes.InterpolatedAssetPropertyValue] { return try await self.asyncCompactMap { item in item.interpolatedAssetPropertyValues } } } - -/// Paginate over `[ListAccessPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessPoliciesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAccessPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessPoliciesOutputResponse` public func listAccessPoliciesPaginated(input: ListAccessPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessPoliciesInput.nextToken, outputKey: \ListAccessPoliciesOutputResponse.nextToken, paginationFunction: self.listAccessPolicies(input:)) } @@ -218,24 +211,23 @@ extension ListAccessPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessPoliciesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AccessPolicySummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AccessPolicySummary]` extension PaginatorSequence where Input == ListAccessPoliciesInput, Output == ListAccessPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessPoliciesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AccessPolicySummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AccessPolicySummary]` public func accessPolicySummaries() async throws -> [IoTSiteWiseClientTypes.AccessPolicySummary] { return try await self.asyncCompactMap { item in item.accessPolicySummaries } } } - -/// Paginate over `[ListAssetModelPropertiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetModelPropertiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetModelPropertiesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssetModelPropertiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetModelPropertiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetModelPropertiesOutputResponse` public func listAssetModelPropertiesPaginated(input: ListAssetModelPropertiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetModelPropertiesInput.nextToken, outputKey: \ListAssetModelPropertiesOutputResponse.nextToken, paginationFunction: self.listAssetModelProperties(input:)) } @@ -251,24 +243,23 @@ extension ListAssetModelPropertiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetModelPropertiesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetModelPropertySummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetModelPropertySummary]` extension PaginatorSequence where Input == ListAssetModelPropertiesInput, Output == ListAssetModelPropertiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetModelPropertiesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetModelPropertySummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetModelPropertySummary]` public func assetModelPropertySummaries() async throws -> [IoTSiteWiseClientTypes.AssetModelPropertySummary] { return try await self.asyncCompactMap { item in item.assetModelPropertySummaries } } } - -/// Paginate over `[ListAssetModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetModelsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssetModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetModelsOutputResponse` public func listAssetModelsPaginated(input: ListAssetModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetModelsInput.nextToken, outputKey: \ListAssetModelsOutputResponse.nextToken, paginationFunction: self.listAssetModels(input:)) } @@ -282,24 +273,23 @@ extension ListAssetModelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetModelsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetModelSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetModelSummary]` extension PaginatorSequence where Input == ListAssetModelsInput, Output == ListAssetModelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetModelsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetModelSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetModelSummary]` public func assetModelSummaries() async throws -> [IoTSiteWiseClientTypes.AssetModelSummary] { return try await self.asyncCompactMap { item in item.assetModelSummaries } } } - -/// Paginate over `[ListAssetPropertiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetPropertiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetPropertiesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssetPropertiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetPropertiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetPropertiesOutputResponse` public func listAssetPropertiesPaginated(input: ListAssetPropertiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetPropertiesInput.nextToken, outputKey: \ListAssetPropertiesOutputResponse.nextToken, paginationFunction: self.listAssetProperties(input:)) } @@ -315,24 +305,23 @@ extension ListAssetPropertiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetPropertiesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetPropertySummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetPropertySummary]` extension PaginatorSequence where Input == ListAssetPropertiesInput, Output == ListAssetPropertiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetPropertiesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetPropertySummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetPropertySummary]` public func assetPropertySummaries() async throws -> [IoTSiteWiseClientTypes.AssetPropertySummary] { return try await self.asyncCompactMap { item in item.assetPropertySummaries } } } - -/// Paginate over `[ListAssetRelationshipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetRelationshipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetRelationshipsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssetRelationshipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetRelationshipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetRelationshipsOutputResponse` public func listAssetRelationshipsPaginated(input: ListAssetRelationshipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetRelationshipsInput.nextToken, outputKey: \ListAssetRelationshipsOutputResponse.nextToken, paginationFunction: self.listAssetRelationships(input:)) } @@ -348,24 +337,23 @@ extension ListAssetRelationshipsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetRelationshipsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetRelationshipSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetRelationshipSummary]` extension PaginatorSequence where Input == ListAssetRelationshipsInput, Output == ListAssetRelationshipsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetRelationshipsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetRelationshipSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetRelationshipSummary]` public func assetRelationshipSummaries() async throws -> [IoTSiteWiseClientTypes.AssetRelationshipSummary] { return try await self.asyncCompactMap { item in item.assetRelationshipSummaries } } } - -/// Paginate over `[ListAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` public func listAssetsPaginated(input: ListAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetsInput.nextToken, outputKey: \ListAssetsOutputResponse.nextToken, paginationFunction: self.listAssets(input:)) } @@ -381,24 +369,23 @@ extension ListAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssetSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssetSummary]` extension PaginatorSequence where Input == ListAssetsInput, Output == ListAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssetSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssetSummary]` public func assetSummaries() async throws -> [IoTSiteWiseClientTypes.AssetSummary] { return try await self.asyncCompactMap { item in item.assetSummaries } } } - -/// Paginate over `[ListAssociatedAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedAssetsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListAssociatedAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedAssetsOutputResponse` public func listAssociatedAssetsPaginated(input: ListAssociatedAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedAssetsInput.nextToken, outputKey: \ListAssociatedAssetsOutputResponse.nextToken, paginationFunction: self.listAssociatedAssets(input:)) } @@ -415,24 +402,23 @@ extension ListAssociatedAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociatedAssetsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.AssociatedAssetsSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.AssociatedAssetsSummary]` extension PaginatorSequence where Input == ListAssociatedAssetsInput, Output == ListAssociatedAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociatedAssetsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.AssociatedAssetsSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.AssociatedAssetsSummary]` public func assetSummaries() async throws -> [IoTSiteWiseClientTypes.AssociatedAssetsSummary] { return try await self.asyncCompactMap { item in item.assetSummaries } } } - -/// Paginate over `[ListBulkImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBulkImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBulkImportJobsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListBulkImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBulkImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBulkImportJobsOutputResponse` public func listBulkImportJobsPaginated(input: ListBulkImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBulkImportJobsInput.nextToken, outputKey: \ListBulkImportJobsOutputResponse.nextToken, paginationFunction: self.listBulkImportJobs(input:)) } @@ -447,24 +433,23 @@ extension ListBulkImportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBulkImportJobsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.JobSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.JobSummary]` extension PaginatorSequence where Input == ListBulkImportJobsInput, Output == ListBulkImportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBulkImportJobsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.JobSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.JobSummary]` public func jobSummaries() async throws -> [IoTSiteWiseClientTypes.JobSummary] { return try await self.asyncCompactMap { item in item.jobSummaries } } } - -/// Paginate over `[ListDashboardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDashboardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListDashboardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDashboardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` public func listDashboardsPaginated(input: ListDashboardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDashboardsInput.nextToken, outputKey: \ListDashboardsOutputResponse.nextToken, paginationFunction: self.listDashboards(input:)) } @@ -479,24 +464,23 @@ extension ListDashboardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.DashboardSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.DashboardSummary]` extension PaginatorSequence where Input == ListDashboardsInput, Output == ListDashboardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.DashboardSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.DashboardSummary]` public func dashboardSummaries() async throws -> [IoTSiteWiseClientTypes.DashboardSummary] { return try await self.asyncCompactMap { item in item.dashboardSummaries } } } - -/// Paginate over `[ListGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` public func listGatewaysPaginated(input: ListGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGatewaysInput.nextToken, outputKey: \ListGatewaysOutputResponse.nextToken, paginationFunction: self.listGateways(input:)) } @@ -510,24 +494,23 @@ extension ListGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGatewaysPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.GatewaySummary]` -/// - Returns: `[IoTSiteWiseClientTypes.GatewaySummary]` extension PaginatorSequence where Input == ListGatewaysInput, Output == ListGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGatewaysPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.GatewaySummary]` + /// - Returns: `[IoTSiteWiseClientTypes.GatewaySummary]` public func gatewaySummaries() async throws -> [IoTSiteWiseClientTypes.GatewaySummary] { return try await self.asyncCompactMap { item in item.gatewaySummaries } } } - -/// Paginate over `[ListPortalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPortalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPortalsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListPortalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPortalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPortalsOutputResponse` public func listPortalsPaginated(input: ListPortalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPortalsInput.nextToken, outputKey: \ListPortalsOutputResponse.nextToken, paginationFunction: self.listPortals(input:)) } @@ -541,24 +524,23 @@ extension ListPortalsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPortalsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.PortalSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.PortalSummary]` extension PaginatorSequence where Input == ListPortalsInput, Output == ListPortalsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPortalsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.PortalSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.PortalSummary]` public func portalSummaries() async throws -> [IoTSiteWiseClientTypes.PortalSummary] { return try await self.asyncCompactMap { item in item.portalSummaries } } } - -/// Paginate over `[ListProjectAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectAssetsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListProjectAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectAssetsOutputResponse` public func listProjectAssetsPaginated(input: ListProjectAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectAssetsInput.nextToken, outputKey: \ListProjectAssetsOutputResponse.nextToken, paginationFunction: self.listProjectAssets(input:)) } @@ -573,24 +555,23 @@ extension ListProjectAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectAssetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListProjectAssetsInput, Output == ListProjectAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectAssetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func assetIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.assetIds } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -605,24 +586,23 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.ProjectSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.ProjectSummary]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.ProjectSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.ProjectSummary]` public func projectSummaries() async throws -> [IoTSiteWiseClientTypes.ProjectSummary] { return try await self.asyncCompactMap { item in item.projectSummaries } } } - -/// Paginate over `[ListTimeSeriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTimeSeriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTimeSeriesOutputResponse` extension IoTSiteWiseClient { + /// Paginate over `[ListTimeSeriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTimeSeriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTimeSeriesOutputResponse` public func listTimeSeriesPaginated(input: ListTimeSeriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTimeSeriesInput.nextToken, outputKey: \ListTimeSeriesOutputResponse.nextToken, paginationFunction: self.listTimeSeries(input:)) } @@ -639,10 +619,10 @@ extension ListTimeSeriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTimeSeriesPaginated` -/// to access the nested member `[IoTSiteWiseClientTypes.TimeSeriesSummary]` -/// - Returns: `[IoTSiteWiseClientTypes.TimeSeriesSummary]` extension PaginatorSequence where Input == ListTimeSeriesInput, Output == ListTimeSeriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTimeSeriesPaginated` + /// to access the nested member `[IoTSiteWiseClientTypes.TimeSeriesSummary]` + /// - Returns: `[IoTSiteWiseClientTypes.TimeSeriesSummary]` public func timeSeriesSummaries() async throws -> [IoTSiteWiseClientTypes.TimeSeriesSummary] { return try await self.asyncCompactMap { item in item.timeSeriesSummaries } } diff --git a/Sources/Services/AWSIoTThingsGraph/Paginators.swift b/Sources/Services/AWSIoTThingsGraph/Paginators.swift index d7b3bf0ec11..8c119793dfd 100644 --- a/Sources/Services/AWSIoTThingsGraph/Paginators.swift +++ b/Sources/Services/AWSIoTThingsGraph/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetFlowTemplateRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFlowTemplateRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFlowTemplateRevisionsOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[GetFlowTemplateRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFlowTemplateRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFlowTemplateRevisionsOutputResponse` public func getFlowTemplateRevisionsPaginated(input: GetFlowTemplateRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFlowTemplateRevisionsInput.nextToken, outputKey: \GetFlowTemplateRevisionsOutputResponse.nextToken, paginationFunction: self.getFlowTemplateRevisions(input:)) } @@ -26,24 +25,23 @@ extension GetFlowTemplateRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getFlowTemplateRevisionsPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.FlowTemplateSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.FlowTemplateSummary]` extension PaginatorSequence where Input == GetFlowTemplateRevisionsInput, Output == GetFlowTemplateRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getFlowTemplateRevisionsPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.FlowTemplateSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.FlowTemplateSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.FlowTemplateSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[GetSystemTemplateRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSystemTemplateRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSystemTemplateRevisionsOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[GetSystemTemplateRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSystemTemplateRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSystemTemplateRevisionsOutputResponse` public func getSystemTemplateRevisionsPaginated(input: GetSystemTemplateRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSystemTemplateRevisionsInput.nextToken, outputKey: \GetSystemTemplateRevisionsOutputResponse.nextToken, paginationFunction: self.getSystemTemplateRevisions(input:)) } @@ -58,24 +56,23 @@ extension GetSystemTemplateRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSystemTemplateRevisionsPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.SystemTemplateSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.SystemTemplateSummary]` extension PaginatorSequence where Input == GetSystemTemplateRevisionsInput, Output == GetSystemTemplateRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSystemTemplateRevisionsPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.SystemTemplateSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.SystemTemplateSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.SystemTemplateSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListFlowExecutionMessagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFlowExecutionMessagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFlowExecutionMessagesOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[ListFlowExecutionMessagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFlowExecutionMessagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFlowExecutionMessagesOutputResponse` public func listFlowExecutionMessagesPaginated(input: ListFlowExecutionMessagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFlowExecutionMessagesInput.nextToken, outputKey: \ListFlowExecutionMessagesOutputResponse.nextToken, paginationFunction: self.listFlowExecutionMessages(input:)) } @@ -90,24 +87,23 @@ extension ListFlowExecutionMessagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFlowExecutionMessagesPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.FlowExecutionMessage]` -/// - Returns: `[IoTThingsGraphClientTypes.FlowExecutionMessage]` extension PaginatorSequence where Input == ListFlowExecutionMessagesInput, Output == ListFlowExecutionMessagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFlowExecutionMessagesPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.FlowExecutionMessage]` + /// - Returns: `[IoTThingsGraphClientTypes.FlowExecutionMessage]` public func messages() async throws -> [IoTThingsGraphClientTypes.FlowExecutionMessage] { return try await self.asyncCompactMap { item in item.messages } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -122,24 +118,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.Tag]` -/// - Returns: `[IoTThingsGraphClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.Tag]` + /// - Returns: `[IoTThingsGraphClientTypes.Tag]` public func tags() async throws -> [IoTThingsGraphClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[SearchEntitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchEntitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchEntitiesOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchEntitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchEntitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchEntitiesOutputResponse` public func searchEntitiesPaginated(input: SearchEntitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchEntitiesInput.nextToken, outputKey: \SearchEntitiesOutputResponse.nextToken, paginationFunction: self.searchEntities(input:)) } @@ -156,24 +151,23 @@ extension SearchEntitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchEntitiesPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.EntityDescription]` -/// - Returns: `[IoTThingsGraphClientTypes.EntityDescription]` extension PaginatorSequence where Input == SearchEntitiesInput, Output == SearchEntitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchEntitiesPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.EntityDescription]` + /// - Returns: `[IoTThingsGraphClientTypes.EntityDescription]` public func descriptions() async throws -> [IoTThingsGraphClientTypes.EntityDescription] { return try await self.asyncCompactMap { item in item.descriptions } } } - -/// Paginate over `[SearchFlowExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchFlowExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchFlowExecutionsOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchFlowExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchFlowExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchFlowExecutionsOutputResponse` public func searchFlowExecutionsPaginated(input: SearchFlowExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchFlowExecutionsInput.nextToken, outputKey: \SearchFlowExecutionsOutputResponse.nextToken, paginationFunction: self.searchFlowExecutions(input:)) } @@ -191,24 +185,23 @@ extension SearchFlowExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchFlowExecutionsPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.FlowExecutionSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.FlowExecutionSummary]` extension PaginatorSequence where Input == SearchFlowExecutionsInput, Output == SearchFlowExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchFlowExecutionsPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.FlowExecutionSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.FlowExecutionSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.FlowExecutionSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[SearchFlowTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchFlowTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchFlowTemplatesOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchFlowTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchFlowTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchFlowTemplatesOutputResponse` public func searchFlowTemplatesPaginated(input: SearchFlowTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchFlowTemplatesInput.nextToken, outputKey: \SearchFlowTemplatesOutputResponse.nextToken, paginationFunction: self.searchFlowTemplates(input:)) } @@ -223,24 +216,23 @@ extension SearchFlowTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchFlowTemplatesPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.FlowTemplateSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.FlowTemplateSummary]` extension PaginatorSequence where Input == SearchFlowTemplatesInput, Output == SearchFlowTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchFlowTemplatesPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.FlowTemplateSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.FlowTemplateSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.FlowTemplateSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[SearchSystemInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchSystemInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchSystemInstancesOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchSystemInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchSystemInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchSystemInstancesOutputResponse` public func searchSystemInstancesPaginated(input: SearchSystemInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchSystemInstancesInput.nextToken, outputKey: \SearchSystemInstancesOutputResponse.nextToken, paginationFunction: self.searchSystemInstances(input:)) } @@ -255,24 +247,23 @@ extension SearchSystemInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchSystemInstancesPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.SystemInstanceSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.SystemInstanceSummary]` extension PaginatorSequence where Input == SearchSystemInstancesInput, Output == SearchSystemInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchSystemInstancesPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.SystemInstanceSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.SystemInstanceSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.SystemInstanceSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[SearchSystemTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchSystemTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchSystemTemplatesOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchSystemTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchSystemTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchSystemTemplatesOutputResponse` public func searchSystemTemplatesPaginated(input: SearchSystemTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchSystemTemplatesInput.nextToken, outputKey: \SearchSystemTemplatesOutputResponse.nextToken, paginationFunction: self.searchSystemTemplates(input:)) } @@ -287,24 +278,23 @@ extension SearchSystemTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchSystemTemplatesPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.SystemTemplateSummary]` -/// - Returns: `[IoTThingsGraphClientTypes.SystemTemplateSummary]` extension PaginatorSequence where Input == SearchSystemTemplatesInput, Output == SearchSystemTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchSystemTemplatesPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.SystemTemplateSummary]` + /// - Returns: `[IoTThingsGraphClientTypes.SystemTemplateSummary]` public func summaries() async throws -> [IoTThingsGraphClientTypes.SystemTemplateSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[SearchThingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchThingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchThingsOutputResponse` extension IoTThingsGraphClient { + /// Paginate over `[SearchThingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchThingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchThingsOutputResponse` public func searchThingsPaginated(input: SearchThingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchThingsInput.nextToken, outputKey: \SearchThingsOutputResponse.nextToken, paginationFunction: self.searchThings(input:)) } @@ -320,10 +310,10 @@ extension SearchThingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchThingsPaginated` -/// to access the nested member `[IoTThingsGraphClientTypes.Thing]` -/// - Returns: `[IoTThingsGraphClientTypes.Thing]` extension PaginatorSequence where Input == SearchThingsInput, Output == SearchThingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchThingsPaginated` + /// to access the nested member `[IoTThingsGraphClientTypes.Thing]` + /// - Returns: `[IoTThingsGraphClientTypes.Thing]` public func things() async throws -> [IoTThingsGraphClientTypes.Thing] { return try await self.asyncCompactMap { item in item.things } } diff --git a/Sources/Services/AWSIoTTwinMaker/Paginators.swift b/Sources/Services/AWSIoTTwinMaker/Paginators.swift index 17d2eef5627..876ad6482ef 100644 --- a/Sources/Services/AWSIoTTwinMaker/Paginators.swift +++ b/Sources/Services/AWSIoTTwinMaker/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ExecuteQueryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ExecuteQueryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ExecuteQueryOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ExecuteQueryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ExecuteQueryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ExecuteQueryOutputResponse` public func executeQueryPaginated(input: ExecuteQueryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ExecuteQueryInput.nextToken, outputKey: \ExecuteQueryOutputResponse.nextToken, paginationFunction: self.executeQuery(input:)) } @@ -26,16 +25,15 @@ extension ExecuteQueryInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[GetPropertyValueOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPropertyValueInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPropertyValueOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[GetPropertyValueOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPropertyValueInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPropertyValueOutputResponse` public func getPropertyValuePaginated(input: GetPropertyValueInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPropertyValueInput.nextToken, outputKey: \GetPropertyValueOutputResponse.nextToken, paginationFunction: self.getPropertyValue(input:)) } @@ -55,16 +53,15 @@ extension GetPropertyValueInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[GetPropertyValueHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPropertyValueHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPropertyValueHistoryOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[GetPropertyValueHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPropertyValueHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPropertyValueHistoryOutputResponse` public func getPropertyValueHistoryPaginated(input: GetPropertyValueHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPropertyValueHistoryInput.nextToken, outputKey: \GetPropertyValueHistoryOutputResponse.nextToken, paginationFunction: self.getPropertyValueHistory(input:)) } @@ -89,16 +86,15 @@ extension GetPropertyValueHistoryInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListComponentTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentTypesOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListComponentTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentTypesOutputResponse` public func listComponentTypesPaginated(input: ListComponentTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentTypesInput.nextToken, outputKey: \ListComponentTypesOutputResponse.nextToken, paginationFunction: self.listComponentTypes(input:)) } @@ -113,16 +109,15 @@ extension ListComponentTypesInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListEntitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListEntitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesOutputResponse` public func listEntitiesPaginated(input: ListEntitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntitiesInput.nextToken, outputKey: \ListEntitiesOutputResponse.nextToken, paginationFunction: self.listEntities(input:)) } @@ -137,16 +132,15 @@ extension ListEntitiesInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListScenesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListScenesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListScenesOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListScenesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListScenesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListScenesOutputResponse` public func listScenesPaginated(input: ListScenesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListScenesInput.nextToken, outputKey: \ListScenesOutputResponse.nextToken, paginationFunction: self.listScenes(input:)) } @@ -160,16 +154,15 @@ extension ListScenesInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListSyncJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSyncJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSyncJobsOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListSyncJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSyncJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSyncJobsOutputResponse` public func listSyncJobsPaginated(input: ListSyncJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSyncJobsInput.nextToken, outputKey: \ListSyncJobsOutputResponse.nextToken, paginationFunction: self.listSyncJobs(input:)) } @@ -183,16 +176,15 @@ extension ListSyncJobsInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListSyncResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSyncResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSyncResourcesOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListSyncResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSyncResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSyncResourcesOutputResponse` public func listSyncResourcesPaginated(input: ListSyncResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSyncResourcesInput.nextToken, outputKey: \ListSyncResourcesOutputResponse.nextToken, paginationFunction: self.listSyncResources(input:)) } @@ -208,16 +200,15 @@ extension ListSyncResourcesInput: ClientRuntime.PaginateToken { workspaceId: self.workspaceId )} } - -/// Paginate over `[ListWorkspacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkspacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkspacesOutputResponse` extension IoTTwinMakerClient { + /// Paginate over `[ListWorkspacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkspacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkspacesOutputResponse` public func listWorkspacesPaginated(input: ListWorkspacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkspacesInput.nextToken, outputKey: \ListWorkspacesOutputResponse.nextToken, paginationFunction: self.listWorkspaces(input:)) } diff --git a/Sources/Services/AWSIoTWireless/Paginators.swift b/Sources/Services/AWSIoTWireless/Paginators.swift index 13d1402c03b..3c2395b857d 100644 --- a/Sources/Services/AWSIoTWireless/Paginators.swift +++ b/Sources/Services/AWSIoTWireless/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDestinationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDestinationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDestinationsOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListDestinationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDestinationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDestinationsOutputResponse` public func listDestinationsPaginated(input: ListDestinationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDestinationsInput.nextToken, outputKey: \ListDestinationsOutputResponse.nextToken, paginationFunction: self.listDestinations(input:)) } @@ -24,16 +23,15 @@ extension ListDestinationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDeviceProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeviceProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeviceProfilesOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListDeviceProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeviceProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeviceProfilesOutputResponse` public func listDeviceProfilesPaginated(input: ListDeviceProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeviceProfilesInput.nextToken, outputKey: \ListDeviceProfilesOutputResponse.nextToken, paginationFunction: self.listDeviceProfiles(input:)) } @@ -46,16 +44,15 @@ extension ListDeviceProfilesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFuotaTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFuotaTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFuotaTasksOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListFuotaTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFuotaTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFuotaTasksOutputResponse` public func listFuotaTasksPaginated(input: ListFuotaTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFuotaTasksInput.nextToken, outputKey: \ListFuotaTasksOutputResponse.nextToken, paginationFunction: self.listFuotaTasks(input:)) } @@ -68,16 +65,15 @@ extension ListFuotaTasksInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMulticastGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMulticastGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMulticastGroupsOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListMulticastGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMulticastGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMulticastGroupsOutputResponse` public func listMulticastGroupsPaginated(input: ListMulticastGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMulticastGroupsInput.nextToken, outputKey: \ListMulticastGroupsOutputResponse.nextToken, paginationFunction: self.listMulticastGroups(input:)) } @@ -90,16 +86,15 @@ extension ListMulticastGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMulticastGroupsByFuotaTaskOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMulticastGroupsByFuotaTaskInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMulticastGroupsByFuotaTaskOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListMulticastGroupsByFuotaTaskOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMulticastGroupsByFuotaTaskInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMulticastGroupsByFuotaTaskOutputResponse` public func listMulticastGroupsByFuotaTaskPaginated(input: ListMulticastGroupsByFuotaTaskInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMulticastGroupsByFuotaTaskInput.nextToken, outputKey: \ListMulticastGroupsByFuotaTaskOutputResponse.nextToken, paginationFunction: self.listMulticastGroupsByFuotaTask(input:)) } @@ -113,16 +108,15 @@ extension ListMulticastGroupsByFuotaTaskInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListNetworkAnalyzerConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworkAnalyzerConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworkAnalyzerConfigurationsOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListNetworkAnalyzerConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworkAnalyzerConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworkAnalyzerConfigurationsOutputResponse` public func listNetworkAnalyzerConfigurationsPaginated(input: ListNetworkAnalyzerConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworkAnalyzerConfigurationsInput.nextToken, outputKey: \ListNetworkAnalyzerConfigurationsOutputResponse.nextToken, paginationFunction: self.listNetworkAnalyzerConfigurations(input:)) } @@ -135,16 +129,15 @@ extension ListNetworkAnalyzerConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPositionConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPositionConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPositionConfigurationsOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListPositionConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPositionConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPositionConfigurationsOutputResponse` public func listPositionConfigurationsPaginated(input: ListPositionConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPositionConfigurationsInput.nextToken, outputKey: \ListPositionConfigurationsOutputResponse.nextToken, paginationFunction: self.listPositionConfigurations(input:)) } @@ -158,16 +151,15 @@ extension ListPositionConfigurationsInput: ClientRuntime.PaginateToken { resourceType: self.resourceType )} } - -/// Paginate over `[ListQueuedMessagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueuedMessagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueuedMessagesOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListQueuedMessagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueuedMessagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueuedMessagesOutputResponse` public func listQueuedMessagesPaginated(input: ListQueuedMessagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueuedMessagesInput.nextToken, outputKey: \ListQueuedMessagesOutputResponse.nextToken, paginationFunction: self.listQueuedMessages(input:)) } @@ -182,16 +174,15 @@ extension ListQueuedMessagesInput: ClientRuntime.PaginateToken { wirelessDeviceType: self.wirelessDeviceType )} } - -/// Paginate over `[ListServiceProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServiceProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServiceProfilesOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListServiceProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServiceProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServiceProfilesOutputResponse` public func listServiceProfilesPaginated(input: ListServiceProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServiceProfilesInput.nextToken, outputKey: \ListServiceProfilesOutputResponse.nextToken, paginationFunction: self.listServiceProfiles(input:)) } @@ -204,16 +195,15 @@ extension ListServiceProfilesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWirelessDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWirelessDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWirelessDevicesOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListWirelessDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWirelessDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWirelessDevicesOutputResponse` public func listWirelessDevicesPaginated(input: ListWirelessDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWirelessDevicesInput.nextToken, outputKey: \ListWirelessDevicesOutputResponse.nextToken, paginationFunction: self.listWirelessDevices(input:)) } @@ -232,16 +222,15 @@ extension ListWirelessDevicesInput: ClientRuntime.PaginateToken { wirelessDeviceType: self.wirelessDeviceType )} } - -/// Paginate over `[ListWirelessGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWirelessGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWirelessGatewaysOutputResponse` extension IoTWirelessClient { + /// Paginate over `[ListWirelessGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWirelessGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWirelessGatewaysOutputResponse` public func listWirelessGatewaysPaginated(input: ListWirelessGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWirelessGatewaysInput.nextToken, outputKey: \ListWirelessGatewaysOutputResponse.nextToken, paginationFunction: self.listWirelessGateways(input:)) } diff --git a/Sources/Services/AWSIotDeviceAdvisor/Paginators.swift b/Sources/Services/AWSIotDeviceAdvisor/Paginators.swift index 5e4fffba51c..8c2a923bec5 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/Paginators.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSuiteDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSuiteDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSuiteDefinitionsOutputResponse` extension IotDeviceAdvisorClient { + /// Paginate over `[ListSuiteDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSuiteDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSuiteDefinitionsOutputResponse` public func listSuiteDefinitionsPaginated(input: ListSuiteDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSuiteDefinitionsInput.nextToken, outputKey: \ListSuiteDefinitionsOutputResponse.nextToken, paginationFunction: self.listSuiteDefinitions(input:)) } @@ -24,16 +23,15 @@ extension ListSuiteDefinitionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSuiteRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSuiteRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSuiteRunsOutputResponse` extension IotDeviceAdvisorClient { + /// Paginate over `[ListSuiteRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSuiteRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSuiteRunsOutputResponse` public func listSuiteRunsPaginated(input: ListSuiteRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSuiteRunsInput.nextToken, outputKey: \ListSuiteRunsOutputResponse.nextToken, paginationFunction: self.listSuiteRuns(input:)) } diff --git a/Sources/Services/AWSIvs/Paginators.swift b/Sources/Services/AWSIvs/Paginators.swift index e087e3397f5..026e8f59855 100644 --- a/Sources/Services/AWSIvs/Paginators.swift +++ b/Sources/Services/AWSIvs/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension IvsClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -26,16 +25,15 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPlaybackKeyPairsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPlaybackKeyPairsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPlaybackKeyPairsOutputResponse` extension IvsClient { + /// Paginate over `[ListPlaybackKeyPairsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPlaybackKeyPairsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPlaybackKeyPairsOutputResponse` public func listPlaybackKeyPairsPaginated(input: ListPlaybackKeyPairsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPlaybackKeyPairsInput.nextToken, outputKey: \ListPlaybackKeyPairsOutputResponse.nextToken, paginationFunction: self.listPlaybackKeyPairs(input:)) } @@ -48,16 +46,15 @@ extension ListPlaybackKeyPairsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRecordingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecordingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecordingConfigurationsOutputResponse` extension IvsClient { + /// Paginate over `[ListRecordingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecordingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecordingConfigurationsOutputResponse` public func listRecordingConfigurationsPaginated(input: ListRecordingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecordingConfigurationsInput.nextToken, outputKey: \ListRecordingConfigurationsOutputResponse.nextToken, paginationFunction: self.listRecordingConfigurations(input:)) } @@ -70,16 +67,15 @@ extension ListRecordingConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListStreamKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamKeysOutputResponse` extension IvsClient { + /// Paginate over `[ListStreamKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamKeysOutputResponse` public func listStreamKeysPaginated(input: ListStreamKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamKeysInput.nextToken, outputKey: \ListStreamKeysOutputResponse.nextToken, paginationFunction: self.listStreamKeys(input:)) } @@ -93,16 +89,15 @@ extension ListStreamKeysInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` extension IvsClient { + /// Paginate over `[ListStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` public func listStreamsPaginated(input: ListStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamsInput.nextToken, outputKey: \ListStreamsOutputResponse.nextToken, paginationFunction: self.listStreams(input:)) } @@ -116,16 +111,15 @@ extension ListStreamsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListStreamSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamSessionsOutputResponse` extension IvsClient { + /// Paginate over `[ListStreamSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamSessionsOutputResponse` public func listStreamSessionsPaginated(input: ListStreamSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamSessionsInput.nextToken, outputKey: \ListStreamSessionsOutputResponse.nextToken, paginationFunction: self.listStreamSessions(input:)) } diff --git a/Sources/Services/AWSIvschat/Paginators.swift b/Sources/Services/AWSIvschat/Paginators.swift index 254f43d53f8..abdce858856 100644 --- a/Sources/Services/AWSIvschat/Paginators.swift +++ b/Sources/Services/AWSIvschat/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListLoggingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLoggingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLoggingConfigurationsOutputResponse` extension IvschatClient { + /// Paginate over `[ListLoggingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLoggingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLoggingConfigurationsOutputResponse` public func listLoggingConfigurationsPaginated(input: ListLoggingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLoggingConfigurationsInput.nextToken, outputKey: \ListLoggingConfigurationsOutputResponse.nextToken, paginationFunction: self.listLoggingConfigurations(input:)) } @@ -24,16 +23,15 @@ extension ListLoggingConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRoomsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoomsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoomsOutputResponse` extension IvschatClient { + /// Paginate over `[ListRoomsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoomsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoomsOutputResponse` public func listRoomsPaginated(input: ListRoomsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoomsInput.nextToken, outputKey: \ListRoomsOutputResponse.nextToken, paginationFunction: self.listRooms(input:)) } diff --git a/Sources/Services/AWSKMS/Paginators.swift b/Sources/Services/AWSKMS/Paginators.swift index e5a3787de52..7152e8ab68c 100644 --- a/Sources/Services/AWSKMS/Paginators.swift +++ b/Sources/Services/AWSKMS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCustomKeyStoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCustomKeyStoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCustomKeyStoresOutputResponse` extension KMSClient { + /// Paginate over `[DescribeCustomKeyStoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCustomKeyStoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCustomKeyStoresOutputResponse` public func describeCustomKeyStoresPaginated(input: DescribeCustomKeyStoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCustomKeyStoresInput.marker, outputKey: \DescribeCustomKeyStoresOutputResponse.nextMarker, paginationFunction: self.describeCustomKeyStores(input:)) } @@ -27,24 +26,23 @@ extension DescribeCustomKeyStoresInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCustomKeyStoresPaginated` -/// to access the nested member `[KMSClientTypes.CustomKeyStoresListEntry]` -/// - Returns: `[KMSClientTypes.CustomKeyStoresListEntry]` extension PaginatorSequence where Input == DescribeCustomKeyStoresInput, Output == DescribeCustomKeyStoresOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCustomKeyStoresPaginated` + /// to access the nested member `[KMSClientTypes.CustomKeyStoresListEntry]` + /// - Returns: `[KMSClientTypes.CustomKeyStoresListEntry]` public func customKeyStores() async throws -> [KMSClientTypes.CustomKeyStoresListEntry] { return try await self.asyncCompactMap { item in item.customKeyStores } } } - -/// Paginate over `[ListAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` extension KMSClient { + /// Paginate over `[ListAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` public func listAliasesPaginated(input: ListAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAliasesInput.marker, outputKey: \ListAliasesOutputResponse.nextMarker, paginationFunction: self.listAliases(input:)) } @@ -59,24 +57,23 @@ extension ListAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` -/// to access the nested member `[KMSClientTypes.AliasListEntry]` -/// - Returns: `[KMSClientTypes.AliasListEntry]` extension PaginatorSequence where Input == ListAliasesInput, Output == ListAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` + /// to access the nested member `[KMSClientTypes.AliasListEntry]` + /// - Returns: `[KMSClientTypes.AliasListEntry]` public func aliases() async throws -> [KMSClientTypes.AliasListEntry] { return try await self.asyncCompactMap { item in item.aliases } } } - -/// Paginate over `[ListGrantsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGrantsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGrantsOutputResponse` extension KMSClient { + /// Paginate over `[ListGrantsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGrantsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGrantsOutputResponse` public func listGrantsPaginated(input: ListGrantsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGrantsInput.marker, outputKey: \ListGrantsOutputResponse.nextMarker, paginationFunction: self.listGrants(input:)) } @@ -93,24 +90,23 @@ extension ListGrantsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGrantsPaginated` -/// to access the nested member `[KMSClientTypes.GrantListEntry]` -/// - Returns: `[KMSClientTypes.GrantListEntry]` extension PaginatorSequence where Input == ListGrantsInput, Output == ListGrantsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGrantsPaginated` + /// to access the nested member `[KMSClientTypes.GrantListEntry]` + /// - Returns: `[KMSClientTypes.GrantListEntry]` public func grants() async throws -> [KMSClientTypes.GrantListEntry] { return try await self.asyncCompactMap { item in item.grants } } } - -/// Paginate over `[ListKeyPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKeyPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKeyPoliciesOutputResponse` extension KMSClient { + /// Paginate over `[ListKeyPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKeyPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKeyPoliciesOutputResponse` public func listKeyPoliciesPaginated(input: ListKeyPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKeyPoliciesInput.marker, outputKey: \ListKeyPoliciesOutputResponse.nextMarker, paginationFunction: self.listKeyPolicies(input:)) } @@ -125,24 +121,23 @@ extension ListKeyPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listKeyPoliciesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListKeyPoliciesInput, Output == ListKeyPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listKeyPoliciesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func policyNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.policyNames } } } - -/// Paginate over `[ListKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKeysOutputResponse` extension KMSClient { + /// Paginate over `[ListKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKeysOutputResponse` public func listKeysPaginated(input: ListKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKeysInput.marker, outputKey: \ListKeysOutputResponse.nextMarker, paginationFunction: self.listKeys(input:)) } @@ -156,24 +151,23 @@ extension ListKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listKeysPaginated` -/// to access the nested member `[KMSClientTypes.KeyListEntry]` -/// - Returns: `[KMSClientTypes.KeyListEntry]` extension PaginatorSequence where Input == ListKeysInput, Output == ListKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listKeysPaginated` + /// to access the nested member `[KMSClientTypes.KeyListEntry]` + /// - Returns: `[KMSClientTypes.KeyListEntry]` public func keys() async throws -> [KMSClientTypes.KeyListEntry] { return try await self.asyncCompactMap { item in item.keys } } } - -/// Paginate over `[ListResourceTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceTagsOutputResponse` extension KMSClient { + /// Paginate over `[ListResourceTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceTagsOutputResponse` public func listResourceTagsPaginated(input: ListResourceTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceTagsInput.marker, outputKey: \ListResourceTagsOutputResponse.nextMarker, paginationFunction: self.listResourceTags(input:)) } @@ -188,24 +182,23 @@ extension ListResourceTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceTagsPaginated` -/// to access the nested member `[KMSClientTypes.Tag]` -/// - Returns: `[KMSClientTypes.Tag]` extension PaginatorSequence where Input == ListResourceTagsInput, Output == ListResourceTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceTagsPaginated` + /// to access the nested member `[KMSClientTypes.Tag]` + /// - Returns: `[KMSClientTypes.Tag]` public func tags() async throws -> [KMSClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListRetirableGrantsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRetirableGrantsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRetirableGrantsOutputResponse` extension KMSClient { + /// Paginate over `[ListRetirableGrantsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRetirableGrantsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRetirableGrantsOutputResponse` public func listRetirableGrantsPaginated(input: ListRetirableGrantsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRetirableGrantsInput.marker, outputKey: \ListRetirableGrantsOutputResponse.nextMarker, paginationFunction: self.listRetirableGrants(input:)) } @@ -220,10 +213,10 @@ extension ListRetirableGrantsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRetirableGrantsPaginated` -/// to access the nested member `[KMSClientTypes.GrantListEntry]` -/// - Returns: `[KMSClientTypes.GrantListEntry]` extension PaginatorSequence where Input == ListRetirableGrantsInput, Output == ListRetirableGrantsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRetirableGrantsPaginated` + /// to access the nested member `[KMSClientTypes.GrantListEntry]` + /// - Returns: `[KMSClientTypes.GrantListEntry]` public func grants() async throws -> [KMSClientTypes.GrantListEntry] { return try await self.asyncCompactMap { item in item.grants } } diff --git a/Sources/Services/AWSKafka/Paginators.swift b/Sources/Services/AWSKafka/Paginators.swift index f705819ae9d..4af3b34d271 100644 --- a/Sources/Services/AWSKafka/Paginators.swift +++ b/Sources/Services/AWSKafka/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListClusterOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClusterOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClusterOperationsOutputResponse` extension KafkaClient { + /// Paginate over `[ListClusterOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClusterOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClusterOperationsOutputResponse` public func listClusterOperationsPaginated(input: ListClusterOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClusterOperationsInput.nextToken, outputKey: \ListClusterOperationsOutputResponse.nextToken, paginationFunction: self.listClusterOperations(input:)) } @@ -26,24 +25,23 @@ extension ListClusterOperationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClusterOperationsPaginated` -/// to access the nested member `[KafkaClientTypes.ClusterOperationInfo]` -/// - Returns: `[KafkaClientTypes.ClusterOperationInfo]` extension PaginatorSequence where Input == ListClusterOperationsInput, Output == ListClusterOperationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClusterOperationsPaginated` + /// to access the nested member `[KafkaClientTypes.ClusterOperationInfo]` + /// - Returns: `[KafkaClientTypes.ClusterOperationInfo]` public func clusterOperationInfoList() async throws -> [KafkaClientTypes.ClusterOperationInfo] { return try await self.asyncCompactMap { item in item.clusterOperationInfoList } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension KafkaClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -58,24 +56,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[KafkaClientTypes.ClusterInfo]` -/// - Returns: `[KafkaClientTypes.ClusterInfo]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[KafkaClientTypes.ClusterInfo]` + /// - Returns: `[KafkaClientTypes.ClusterInfo]` public func clusterInfoList() async throws -> [KafkaClientTypes.ClusterInfo] { return try await self.asyncCompactMap { item in item.clusterInfoList } } } - -/// Paginate over `[ListClustersV2OutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersV2Input]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersV2OutputResponse` extension KafkaClient { + /// Paginate over `[ListClustersV2OutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersV2Input]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersV2OutputResponse` public func listClustersV2Paginated(input: ListClustersV2Input) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersV2Input.nextToken, outputKey: \ListClustersV2OutputResponse.nextToken, paginationFunction: self.listClustersV2(input:)) } @@ -91,24 +88,23 @@ extension ListClustersV2Input: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersV2Paginated` -/// to access the nested member `[KafkaClientTypes.Cluster]` -/// - Returns: `[KafkaClientTypes.Cluster]` extension PaginatorSequence where Input == ListClustersV2Input, Output == ListClustersV2OutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersV2Paginated` + /// to access the nested member `[KafkaClientTypes.Cluster]` + /// - Returns: `[KafkaClientTypes.Cluster]` public func clusterInfoList() async throws -> [KafkaClientTypes.Cluster] { return try await self.asyncCompactMap { item in item.clusterInfoList } } } - -/// Paginate over `[ListConfigurationRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationRevisionsOutputResponse` extension KafkaClient { + /// Paginate over `[ListConfigurationRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationRevisionsOutputResponse` public func listConfigurationRevisionsPaginated(input: ListConfigurationRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationRevisionsInput.nextToken, outputKey: \ListConfigurationRevisionsOutputResponse.nextToken, paginationFunction: self.listConfigurationRevisions(input:)) } @@ -123,24 +119,23 @@ extension ListConfigurationRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listConfigurationRevisionsPaginated` -/// to access the nested member `[KafkaClientTypes.ConfigurationRevision]` -/// - Returns: `[KafkaClientTypes.ConfigurationRevision]` extension PaginatorSequence where Input == ListConfigurationRevisionsInput, Output == ListConfigurationRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listConfigurationRevisionsPaginated` + /// to access the nested member `[KafkaClientTypes.ConfigurationRevision]` + /// - Returns: `[KafkaClientTypes.ConfigurationRevision]` public func revisions() async throws -> [KafkaClientTypes.ConfigurationRevision] { return try await self.asyncCompactMap { item in item.revisions } } } - -/// Paginate over `[ListConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationsOutputResponse` extension KafkaClient { + /// Paginate over `[ListConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationsOutputResponse` public func listConfigurationsPaginated(input: ListConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationsInput.nextToken, outputKey: \ListConfigurationsOutputResponse.nextToken, paginationFunction: self.listConfigurations(input:)) } @@ -154,24 +149,23 @@ extension ListConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listConfigurationsPaginated` -/// to access the nested member `[KafkaClientTypes.Configuration]` -/// - Returns: `[KafkaClientTypes.Configuration]` extension PaginatorSequence where Input == ListConfigurationsInput, Output == ListConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listConfigurationsPaginated` + /// to access the nested member `[KafkaClientTypes.Configuration]` + /// - Returns: `[KafkaClientTypes.Configuration]` public func configurations() async throws -> [KafkaClientTypes.Configuration] { return try await self.asyncCompactMap { item in item.configurations } } } - -/// Paginate over `[ListKafkaVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKafkaVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKafkaVersionsOutputResponse` extension KafkaClient { + /// Paginate over `[ListKafkaVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKafkaVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKafkaVersionsOutputResponse` public func listKafkaVersionsPaginated(input: ListKafkaVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKafkaVersionsInput.nextToken, outputKey: \ListKafkaVersionsOutputResponse.nextToken, paginationFunction: self.listKafkaVersions(input:)) } @@ -185,24 +179,23 @@ extension ListKafkaVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listKafkaVersionsPaginated` -/// to access the nested member `[KafkaClientTypes.KafkaVersion]` -/// - Returns: `[KafkaClientTypes.KafkaVersion]` extension PaginatorSequence where Input == ListKafkaVersionsInput, Output == ListKafkaVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listKafkaVersionsPaginated` + /// to access the nested member `[KafkaClientTypes.KafkaVersion]` + /// - Returns: `[KafkaClientTypes.KafkaVersion]` public func kafkaVersions() async throws -> [KafkaClientTypes.KafkaVersion] { return try await self.asyncCompactMap { item in item.kafkaVersions } } } - -/// Paginate over `[ListNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` extension KafkaClient { + /// Paginate over `[ListNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` public func listNodesPaginated(input: ListNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNodesInput.nextToken, outputKey: \ListNodesOutputResponse.nextToken, paginationFunction: self.listNodes(input:)) } @@ -217,24 +210,23 @@ extension ListNodesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNodesPaginated` -/// to access the nested member `[KafkaClientTypes.NodeInfo]` -/// - Returns: `[KafkaClientTypes.NodeInfo]` extension PaginatorSequence where Input == ListNodesInput, Output == ListNodesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNodesPaginated` + /// to access the nested member `[KafkaClientTypes.NodeInfo]` + /// - Returns: `[KafkaClientTypes.NodeInfo]` public func nodeInfoList() async throws -> [KafkaClientTypes.NodeInfo] { return try await self.asyncCompactMap { item in item.nodeInfoList } } } - -/// Paginate over `[ListScramSecretsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListScramSecretsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListScramSecretsOutputResponse` extension KafkaClient { + /// Paginate over `[ListScramSecretsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListScramSecretsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListScramSecretsOutputResponse` public func listScramSecretsPaginated(input: ListScramSecretsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListScramSecretsInput.nextToken, outputKey: \ListScramSecretsOutputResponse.nextToken, paginationFunction: self.listScramSecrets(input:)) } @@ -249,10 +241,10 @@ extension ListScramSecretsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listScramSecretsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListScramSecretsInput, Output == ListScramSecretsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listScramSecretsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func secretArnList() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.secretArnList } } diff --git a/Sources/Services/AWSKafkaConnect/Paginators.swift b/Sources/Services/AWSKafkaConnect/Paginators.swift index 4a9ea166667..349500d0ac4 100644 --- a/Sources/Services/AWSKafkaConnect/Paginators.swift +++ b/Sources/Services/AWSKafkaConnect/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` extension KafkaConnectClient { + /// Paginate over `[ListConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` public func listConnectorsPaginated(input: ListConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectorsInput.nextToken, outputKey: \ListConnectorsOutputResponse.nextToken, paginationFunction: self.listConnectors(input:)) } @@ -26,24 +25,23 @@ extension ListConnectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listConnectorsPaginated` -/// to access the nested member `[KafkaConnectClientTypes.ConnectorSummary]` -/// - Returns: `[KafkaConnectClientTypes.ConnectorSummary]` extension PaginatorSequence where Input == ListConnectorsInput, Output == ListConnectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listConnectorsPaginated` + /// to access the nested member `[KafkaConnectClientTypes.ConnectorSummary]` + /// - Returns: `[KafkaConnectClientTypes.ConnectorSummary]` public func connectors() async throws -> [KafkaConnectClientTypes.ConnectorSummary] { return try await self.asyncCompactMap { item in item.connectors } } } - -/// Paginate over `[ListCustomPluginsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomPluginsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomPluginsOutputResponse` extension KafkaConnectClient { + /// Paginate over `[ListCustomPluginsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomPluginsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomPluginsOutputResponse` public func listCustomPluginsPaginated(input: ListCustomPluginsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomPluginsInput.nextToken, outputKey: \ListCustomPluginsOutputResponse.nextToken, paginationFunction: self.listCustomPlugins(input:)) } @@ -57,24 +55,23 @@ extension ListCustomPluginsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomPluginsPaginated` -/// to access the nested member `[KafkaConnectClientTypes.CustomPluginSummary]` -/// - Returns: `[KafkaConnectClientTypes.CustomPluginSummary]` extension PaginatorSequence where Input == ListCustomPluginsInput, Output == ListCustomPluginsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomPluginsPaginated` + /// to access the nested member `[KafkaConnectClientTypes.CustomPluginSummary]` + /// - Returns: `[KafkaConnectClientTypes.CustomPluginSummary]` public func customPlugins() async throws -> [KafkaConnectClientTypes.CustomPluginSummary] { return try await self.asyncCompactMap { item in item.customPlugins } } } - -/// Paginate over `[ListWorkerConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkerConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkerConfigurationsOutputResponse` extension KafkaConnectClient { + /// Paginate over `[ListWorkerConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkerConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkerConfigurationsOutputResponse` public func listWorkerConfigurationsPaginated(input: ListWorkerConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkerConfigurationsInput.nextToken, outputKey: \ListWorkerConfigurationsOutputResponse.nextToken, paginationFunction: self.listWorkerConfigurations(input:)) } @@ -88,10 +85,10 @@ extension ListWorkerConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkerConfigurationsPaginated` -/// to access the nested member `[KafkaConnectClientTypes.WorkerConfigurationSummary]` -/// - Returns: `[KafkaConnectClientTypes.WorkerConfigurationSummary]` extension PaginatorSequence where Input == ListWorkerConfigurationsInput, Output == ListWorkerConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkerConfigurationsPaginated` + /// to access the nested member `[KafkaConnectClientTypes.WorkerConfigurationSummary]` + /// - Returns: `[KafkaConnectClientTypes.WorkerConfigurationSummary]` public func workerConfigurations() async throws -> [KafkaConnectClientTypes.WorkerConfigurationSummary] { return try await self.asyncCompactMap { item in item.workerConfigurations } } diff --git a/Sources/Services/AWSKendra/EndpointResolver.swift b/Sources/Services/AWSKendra/EndpointResolver.swift index 93d0b339e5b..35e784aa859 100644 --- a/Sources/Services/AWSKendra/EndpointResolver.swift +++ b/Sources/Services/AWSKendra/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSKendra/KendraClient.swift b/Sources/Services/AWSKendra/KendraClient.swift index 093d21d6f2b..1a39d0a8c88 100644 --- a/Sources/Services/AWSKendra/KendraClient.swift +++ b/Sources/Services/AWSKendra/KendraClient.swift @@ -2103,7 +2103,7 @@ extension KendraClient: KendraClientProtocol { /// * Relevant documents /// /// - /// You can specify that the query return only one type of result using the QueryResultTypeConfig parameter. Each query returns the 100 most relevant results. + /// You can specify that the query return only one type of result using the QueryResultTypeFilter parameter. Each query returns the 100 most relevant results. public func query(input: QueryInput) async throws -> QueryOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSKendra/KendraClientProtocol.swift b/Sources/Services/AWSKendra/KendraClientProtocol.swift index 3d6ac9a2dcc..0ff33fcb9ab 100644 --- a/Sources/Services/AWSKendra/KendraClientProtocol.swift +++ b/Sources/Services/AWSKendra/KendraClientProtocol.swift @@ -108,7 +108,7 @@ public protocol KendraClientProtocol { /// * Relevant documents /// /// - /// You can specify that the query return only one type of result using the QueryResultTypeConfig parameter. Each query returns the 100 most relevant results. + /// You can specify that the query return only one type of result using the QueryResultTypeFilter parameter. Each query returns the 100 most relevant results. func query(input: QueryInput) async throws -> QueryOutputResponse /// Starts a synchronization job for a data source connector. If a synchronization job is already in progress, Amazon Kendra returns a ResourceInUseException exception. func startDataSourceSyncJob(input: StartDataSourceSyncJobInput) async throws -> StartDataSourceSyncJobOutputResponse diff --git a/Sources/Services/AWSKendra/Paginators.swift b/Sources/Services/AWSKendra/Paginators.swift index d56414927bc..b189ebe2928 100644 --- a/Sources/Services/AWSKendra/Paginators.swift +++ b/Sources/Services/AWSKendra/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSnapshotsOutputResponse` extension KendraClient { + /// Paginate over `[GetSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSnapshotsOutputResponse` public func getSnapshotsPaginated(input: GetSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSnapshotsInput.nextToken, outputKey: \GetSnapshotsOutputResponse.nextToken, paginationFunction: self.getSnapshots(input:)) } @@ -27,16 +26,15 @@ extension GetSnapshotsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAccessControlConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessControlConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessControlConfigurationsOutputResponse` extension KendraClient { + /// Paginate over `[ListAccessControlConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessControlConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessControlConfigurationsOutputResponse` public func listAccessControlConfigurationsPaginated(input: ListAccessControlConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessControlConfigurationsInput.nextToken, outputKey: \ListAccessControlConfigurationsOutputResponse.nextToken, paginationFunction: self.listAccessControlConfigurations(input:)) } @@ -50,16 +48,15 @@ extension ListAccessControlConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDataSourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSourcesOutputResponse` extension KendraClient { + /// Paginate over `[ListDataSourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSourcesOutputResponse` public func listDataSourcesPaginated(input: ListDataSourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSourcesInput.nextToken, outputKey: \ListDataSourcesOutputResponse.nextToken, paginationFunction: self.listDataSources(input:)) } @@ -73,16 +70,15 @@ extension ListDataSourcesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDataSourceSyncJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSourceSyncJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSourceSyncJobsOutputResponse` extension KendraClient { + /// Paginate over `[ListDataSourceSyncJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSourceSyncJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSourceSyncJobsOutputResponse` public func listDataSourceSyncJobsPaginated(input: ListDataSourceSyncJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSourceSyncJobsInput.nextToken, outputKey: \ListDataSourceSyncJobsOutputResponse.nextToken, paginationFunction: self.listDataSourceSyncJobs(input:)) } @@ -99,16 +95,15 @@ extension ListDataSourceSyncJobsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[ListEntityPersonasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntityPersonasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntityPersonasOutputResponse` extension KendraClient { + /// Paginate over `[ListEntityPersonasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntityPersonasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntityPersonasOutputResponse` public func listEntityPersonasPaginated(input: ListEntityPersonasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntityPersonasInput.nextToken, outputKey: \ListEntityPersonasOutputResponse.nextToken, paginationFunction: self.listEntityPersonas(input:)) } @@ -123,16 +118,15 @@ extension ListEntityPersonasInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExperienceEntitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExperienceEntitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExperienceEntitiesOutputResponse` extension KendraClient { + /// Paginate over `[ListExperienceEntitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExperienceEntitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExperienceEntitiesOutputResponse` public func listExperienceEntitiesPaginated(input: ListExperienceEntitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExperienceEntitiesInput.nextToken, outputKey: \ListExperienceEntitiesOutputResponse.nextToken, paginationFunction: self.listExperienceEntities(input:)) } @@ -146,16 +140,15 @@ extension ListExperienceEntitiesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExperiencesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExperiencesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExperiencesOutputResponse` extension KendraClient { + /// Paginate over `[ListExperiencesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExperiencesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExperiencesOutputResponse` public func listExperiencesPaginated(input: ListExperiencesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExperiencesInput.nextToken, outputKey: \ListExperiencesOutputResponse.nextToken, paginationFunction: self.listExperiences(input:)) } @@ -169,16 +162,15 @@ extension ListExperiencesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFaqsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFaqsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFaqsOutputResponse` extension KendraClient { + /// Paginate over `[ListFaqsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFaqsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFaqsOutputResponse` public func listFaqsPaginated(input: ListFaqsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFaqsInput.nextToken, outputKey: \ListFaqsOutputResponse.nextToken, paginationFunction: self.listFaqs(input:)) } @@ -192,16 +184,15 @@ extension ListFaqsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListGroupsOlderThanOrderingIdOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsOlderThanOrderingIdInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOlderThanOrderingIdOutputResponse` extension KendraClient { + /// Paginate over `[ListGroupsOlderThanOrderingIdOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsOlderThanOrderingIdInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOlderThanOrderingIdOutputResponse` public func listGroupsOlderThanOrderingIdPaginated(input: ListGroupsOlderThanOrderingIdInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsOlderThanOrderingIdInput.nextToken, outputKey: \ListGroupsOlderThanOrderingIdOutputResponse.nextToken, paginationFunction: self.listGroupsOlderThanOrderingId(input:)) } @@ -217,16 +208,15 @@ extension ListGroupsOlderThanOrderingIdInput: ClientRuntime.PaginateToken { orderingId: self.orderingId )} } - -/// Paginate over `[ListIndicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIndicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIndicesOutputResponse` extension KendraClient { + /// Paginate over `[ListIndicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIndicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIndicesOutputResponse` public func listIndicesPaginated(input: ListIndicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIndicesInput.nextToken, outputKey: \ListIndicesOutputResponse.nextToken, paginationFunction: self.listIndices(input:)) } @@ -239,16 +229,15 @@ extension ListIndicesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListQuerySuggestionsBlockListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQuerySuggestionsBlockListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQuerySuggestionsBlockListsOutputResponse` extension KendraClient { + /// Paginate over `[ListQuerySuggestionsBlockListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQuerySuggestionsBlockListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQuerySuggestionsBlockListsOutputResponse` public func listQuerySuggestionsBlockListsPaginated(input: ListQuerySuggestionsBlockListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQuerySuggestionsBlockListsInput.nextToken, outputKey: \ListQuerySuggestionsBlockListsOutputResponse.nextToken, paginationFunction: self.listQuerySuggestionsBlockLists(input:)) } @@ -262,16 +251,15 @@ extension ListQuerySuggestionsBlockListsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListThesauriOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThesauriInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThesauriOutputResponse` extension KendraClient { + /// Paginate over `[ListThesauriOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThesauriInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThesauriOutputResponse` public func listThesauriPaginated(input: ListThesauriInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThesauriInput.nextToken, outputKey: \ListThesauriOutputResponse.nextToken, paginationFunction: self.listThesauri(input:)) } diff --git a/Sources/Services/AWSKendra/models/Models.swift b/Sources/Services/AWSKendra/models/Models.swift index b2959225e05..5dbb48f3d9f 100644 --- a/Sources/Services/AWSKendra/models/Models.swift +++ b/Sources/Services/AWSKendra/models/Models.swift @@ -3154,7 +3154,7 @@ extension KendraClientTypes.ConfluencePageToIndexFieldMapping: Swift.Codable { } extension KendraClientTypes { - /// >Maps attributes or field names of Confluence pages to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Confluence data source field names must exist in your Confluence custom metadata. + /// Maps attributes or field names of Confluence pages to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Confluence data source field names must exist in your Confluence custom metadata. public struct ConfluencePageToIndexFieldMapping: Swift.Equatable { /// The name of the field in the data source. public var dataSourceFieldName: KendraClientTypes.ConfluencePageFieldName? @@ -3358,7 +3358,7 @@ extension KendraClientTypes.ConfluenceSpaceToIndexFieldMapping: Swift.Codable { } extension KendraClientTypes { - /// >Maps attributes or field names of Confluence spaces to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Confluence data source field names must exist in your Confluence custom metadata. + /// Maps attributes or field names of Confluence spaces to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Confluence data source field names must exist in your Confluence custom metadata. public struct ConfluenceSpaceToIndexFieldMapping: Swift.Equatable { /// The name of the field in the data source. public var dataSourceFieldName: KendraClientTypes.ConfluenceSpaceFieldName? @@ -3574,20 +3574,34 @@ extension KendraClientTypes { extension KendraClientTypes { public enum ContentType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case csv case html + case json + case md + case msExcel case msWord case pdf case plainText case ppt + case rtf + case xml + case xslt case sdkUnknown(Swift.String) public static var allCases: [ContentType] { return [ + .csv, .html, + .json, + .md, + .msExcel, .msWord, .pdf, .plainText, .ppt, + .rtf, + .xml, + .xslt, .sdkUnknown("") ] } @@ -3597,11 +3611,18 @@ extension KendraClientTypes { } public var rawValue: Swift.String { switch self { + case .csv: return "CSV" case .html: return "HTML" + case .json: return "JSON" + case .md: return "MD" + case .msExcel: return "MS_EXCEL" case .msWord: return "MS_WORD" case .pdf: return "PDF" case .plainText: return "PLAIN_TEXT" case .ppt: return "PPT" + case .rtf: return "RTF" + case .xml: return "XML" + case .xslt: return "XSLT" case let .sdkUnknown(s): return s } } @@ -13662,7 +13683,7 @@ extension KendraClientTypes { public var issueSubEntityFilter: [KendraClientTypes.IssueSubEntity]? /// Specify which issue types to crawl in your Jira data source. You can specify one or more of these options to crawl. public var issueType: [Swift.String]? - /// The URL of the Jira account. For example, company.atlassian.net or https://jira.company.com. You can find your Jira account URL in the URL of your profile page for Jira desktop. + /// The URL of the Jira account. For example, company.atlassian.net. /// This member is required. public var jiraAccountUrl: Swift.String? /// Specify which projects to crawl in your Jira data source. You can specify one or more Jira project IDs. @@ -13671,16 +13692,16 @@ extension KendraClientTypes { public var projectFieldMappings: [KendraClientTypes.DataSourceToIndexFieldMapping]? /// The Amazon Resource Name (ARN) of a secret in Secrets Manager contains the key-value pairs required to connect to your Jira data source. The secret must contain a JSON structure with the following keys: /// - /// * jiraId—The Jira username. + /// * jiraId—The Jira user name or email. /// - /// * jiraCredentials—The Jira API token. For more information on creating an API token in Jira, see [ Using a Jira data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html). + /// * jiraCredentials—The Jira API token. For more information, see [Using a Jira data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html). /// This member is required. public var secretArn: Swift.String? /// Specify which statuses to crawl in your Jira data source. You can specify one or more of these options to crawl. public var status: [Swift.String]? /// TRUE to use the Jira change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in Jira. public var useChangeLog: Swift.Bool - /// Configuration information for an Amazon Virtual Private Cloud to connect to your Jira. Your Jira account must reside inside your VPC. + /// Configuration information for an Amazon Virtual Private Cloud to connect to your Jira. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html). public var vpcConfiguration: KendraClientTypes.DataSourceVpcConfiguration? /// A list of DataSourceToIndexFieldMapping objects that map attributes or field names of Jira work logs to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Jira fields. For more information, see [ Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Jira data source field names must exist in your Jira custom metadata. public var workLogFieldMappings: [KendraClientTypes.DataSourceToIndexFieldMapping]? @@ -16195,7 +16216,7 @@ extension KendraClientTypes { /// A list of user accounts whose documents should be indexed. /// This member is required. public var oneDriveUsers: KendraClientTypes.OneDriveUsers? - /// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the user name and password to connect to OneDrive. The user namd should be the application ID for the OneDrive application, and the password is the application key for the OneDrive application. + /// The Amazon Resource Name (ARN) of an Secrets Managersecret that contains the user name and password to connect to OneDrive. The user name should be the application ID for the OneDrive application, and the password is the application key for the OneDrive application. /// This member is required. public var secretArn: Swift.String? /// The Azure Active Directory domain of the organization. diff --git a/Sources/Services/AWSKendraRanking/EndpointResolver.swift b/Sources/Services/AWSKendraRanking/EndpointResolver.swift new file mode 100644 index 00000000000..f27575e32c8 --- /dev/null +++ b/Sources/Services/AWSKendraRanking/EndpointResolver.swift @@ -0,0 +1,126 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String + /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useFIPS = useFIPS + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> ClientRuntime.Endpoint +} + +public struct DefaultEndpointResolver: EndpointResolver { + + private let engine: AWSClientRuntime.AWSEndpointsRuleEngine + private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-ranking-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-ranking.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-ranking-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://kendra-ranking.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}" + + public init() throws { + engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) + } + + public func resolve(params: EndpointParams) throws -> ClientRuntime.Endpoint { + let context = try AWSClientRuntime.AWSEndpointsRequestContext() + try context.add(name: "Endpoint", value: params.endpoint) + try context.add(name: "Region", value: params.region) + try context.add(name: "UseFIPS", value: params.useFIPS) + + guard let crtResolvedEndpoint = try engine.resolve(context: context) else { + throw EndpointError.unresolved("Failed to resolved endpoint") + } + + if crtResolvedEndpoint.getType() == .error { + let error = crtResolvedEndpoint.getError() + throw EndpointError.unresolved(error) + } + + guard let url = crtResolvedEndpoint.getURL() else { + assertionFailure("This must be a bug in either CRT or the rule engine, if the endpoint is not an error, it must have a url") + throw EndpointError.unresolved("Failed to resolved endpoint") + } + + let headers = crtResolvedEndpoint.getHeaders() ?? [:] + let properties = crtResolvedEndpoint.getProperties() ?? [:] + return try Endpoint(urlString: url, headers: Headers(headers), properties: properties) + } +} + +public struct EndpointResolverMiddleware: ClientRuntime.Middleware { + public let id: Swift.String = "EndpointResolverMiddleware" + + let endpointResolver: EndpointResolver + + let endpointParams: EndpointParams + + public init(endpointResolver: EndpointResolver, endpointParams: EndpointParams) { + self.endpointResolver = endpointResolver + self.endpointParams = endpointParams + } + + public func handle(context: Context, + input: ClientRuntime.SdkHttpRequestBuilder, + next: H) async throws -> ClientRuntime.OperationOutput + where H: Handler, + Self.MInput == H.Input, + Self.MOutput == H.Output, + Self.Context == H.Context + { + let endpoint = try endpointResolver.resolve(params: endpointParams) + + let authScheme = endpoint.authScheme(name: "sigv4") + let awsEndpoint = AWSEndpoint(endpoint: endpoint, signingName: authScheme?["signingName"] as? String, signingRegion: authScheme?["signingRegion"] as? String) + + var host = "" + if let hostOverride = context.getHost() { + host = hostOverride + } else { + host = "\(context.getHostPrefix() ?? "")\(awsEndpoint.endpoint.host)" + } + + if let protocolType = awsEndpoint.endpoint.protocolType { + input.withProtocol(protocolType) + } + + var updatedContext = context + if let signingRegion = awsEndpoint.signingRegion { + updatedContext.attributes.set(key: HttpContext.signingRegion, value: signingRegion) + } + if let signingName = awsEndpoint.signingName { + updatedContext.attributes.set(key: HttpContext.signingName, value: signingName) + } + + if let headers = endpoint.headers { + input.withHeaders(headers) + } + + input.withMethod(context.getMethod()) + .withHost(host) + .withPort(awsEndpoint.endpoint.port) + .withPath(awsEndpoint.endpoint.path.appendingPathComponent(context.getPath())) + .withHeader(name: "Host", value: host) + + return try await next.handle(context: updatedContext, input: input) + } + + public typealias MInput = ClientRuntime.SdkHttpRequestBuilder + public typealias MOutput = ClientRuntime.OperationOutput + public typealias Context = ClientRuntime.HttpContext +} diff --git a/Sources/Services/AWSKendraRanking/KendraRankingClient.swift b/Sources/Services/AWSKendraRanking/KendraRankingClient.swift new file mode 100644 index 00000000000..de74510002c --- /dev/null +++ b/Sources/Services/AWSKendraRanking/KendraRankingClient.swift @@ -0,0 +1,568 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime +import Foundation +import Logging + +public class KendraRankingClient { + public static let clientName = "KendraRankingClient" + let client: ClientRuntime.SdkHttpClient + let config: KendraRankingClientConfigurationProtocol + let serviceName = "Kendra Ranking" + let encoder: ClientRuntime.RequestEncoder + let decoder: ClientRuntime.ResponseDecoder + + public init(config: KendraRankingClientConfigurationProtocol) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + let encoder = ClientRuntime.JSONEncoder() + encoder.dateEncodingStrategy = .secondsSince1970 + encoder.nonConformingFloatEncodingStrategy = .convertToString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") + self.encoder = config.encoder ?? encoder + let decoder = ClientRuntime.JSONDecoder() + decoder.dateDecodingStrategy = .secondsSince1970 + decoder.nonConformingFloatDecodingStrategy = .convertFromString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") + self.decoder = config.decoder ?? decoder + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try KendraRankingClientConfiguration(region: region) + self.init(config: config) + } + + public convenience init() async throws { + let config = try await KendraRankingClientConfiguration() + self.init(config: config) + } + + public class KendraRankingClientConfiguration: KendraRankingClientConfigurationProtocol { + public var clientLogMode: ClientRuntime.ClientLogMode + public var decoder: ClientRuntime.ResponseDecoder? + public var encoder: ClientRuntime.RequestEncoder? + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + public var httpClientEngine: ClientRuntime.HttpClientEngine + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + public var logger: ClientRuntime.LogAgent + public var retryer: ClientRuntime.SDKRetryer + + public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var endpoint: Swift.String? + public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? + public var region: Swift.String? + public var regionResolver: AWSClientRuntime.RegionResolver? + public var signingRegion: Swift.String? + public var useDualStack: Swift.Bool? + public var useFIPS: Swift.Bool? + + public var endpointResolver: EndpointResolver + + public init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + region: Swift.String, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + if let credProvider = credentialsProvider { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromCustom(credProvider) + } else { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromChain() + } + self.endpoint = endpoint + if let endpointResolver = endpointResolver { + self.endpointResolver = endpointResolver + } else { + self.endpointResolver = try DefaultEndpointResolver() + } + self.frameworkMetadata = frameworkMetadata + self.region = region + self.regionResolver = try regionResolver ?? DefaultRegionResolver() + self.signingRegion = signingRegion ?? region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + self.clientLogMode = runtimeConfig.clientLogMode + self.decoder = runtimeConfig.decoder + self.encoder = runtimeConfig.encoder + self.httpClientConfiguration = runtimeConfig.httpClientConfiguration + self.httpClientEngine = runtimeConfig.httpClientEngine + self.idempotencyTokenGenerator = runtimeConfig.idempotencyTokenGenerator + self.logger = runtimeConfig.logger + self.retryer = runtimeConfig.retryer + } + + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + region: Swift.String, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let runtimeConfig = try ClientRuntime.DefaultSDKRuntimeConfiguration("KendraRankingClient") + try self.init( + credentialsProvider: credentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + regionResolver: regionResolver, + runtimeConfig: runtimeConfig, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS + ) + } + + public init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) async throws { + if let credProvider = credentialsProvider { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromCustom(credProvider) + } else { + self.credentialsProvider = try AWSClientRuntime.AWSCredentialsProvider.fromChain() + } + self.endpoint = endpoint + if let endpointResolver = endpointResolver { + self.endpointResolver = endpointResolver + } else { + self.endpointResolver = try DefaultEndpointResolver() + } + self.frameworkMetadata = frameworkMetadata + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver() + self.region = await resolvedRegionResolver.resolveRegion() + self.regionResolver = try regionResolver ?? DefaultRegionResolver() + self.signingRegion = signingRegion ?? region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + self.clientLogMode = runtimeConfig.clientLogMode + self.decoder = runtimeConfig.decoder + self.encoder = runtimeConfig.encoder + self.httpClientConfiguration = runtimeConfig.httpClientConfiguration + self.httpClientEngine = runtimeConfig.httpClientEngine + self.idempotencyTokenGenerator = runtimeConfig.idempotencyTokenGenerator + self.logger = runtimeConfig.logger + self.retryer = runtimeConfig.retryer + } + + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + regionResolver: AWSClientRuntime.RegionResolver? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) async throws { + let runtimeConfig = try ClientRuntime.DefaultSDKRuntimeConfiguration("KendraRankingClient") + try await self.init( + credentialsProvider: credentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + regionResolver: regionResolver, + runtimeConfig: runtimeConfig, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS + ) + } + + public var partitionID: String? { + return "KendraRankingClient - \(region ?? "")" + } + } +} + +public struct KendraRankingClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFactory { + public var label = "KendraRankingClient" + let logLevel: ClientRuntime.SDKLogLevel + public func construct(label: String) -> LogHandler { + var handler = StreamLogHandler.standardOutput(label: label) + handler.logLevel = logLevel.toLoggerType() + return handler + } + public init(logLevel: ClientRuntime.SDKLogLevel) { + self.logLevel = logLevel + } +} + +extension KendraRankingClient: KendraRankingClientProtocol { + /// Creates a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You set the number of capacity units that you require for Amazon Kendra Intelligent Ranking to rescore or re-rank a search service's results. For an example of using the CreateRescoreExecutionPlan API, including using the Python and Java SDKs, see [Semantically ranking a search service's results](https://docs.aws.amazon.com/kendra/latest/dg/search-service-rerank.html). + public func createRescoreExecutionPlan(input: CreateRescoreExecutionPlanInput) async throws -> CreateRescoreExecutionPlanOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createRescoreExecutionPlan") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "createRescoreExecutionPlan") + operation.initializeStep.intercept(position: .after, id: "IdempotencyTokenMiddleware") { (context, input, next) -> ClientRuntime.OperationOutput in + let idempotencyTokenGenerator = context.getIdempotencyTokenGenerator() + var copiedInput = input + if input.clientToken == nil { + copiedInput.clientToken = idempotencyTokenGenerator.generateToken() + } + return try await next.handle(context: context, input: copiedInput) + } + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.CreateRescoreExecutionPlan")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateRescoreExecutionPlanRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Deletes a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + public func deleteRescoreExecutionPlan(input: DeleteRescoreExecutionPlanInput) async throws -> DeleteRescoreExecutionPlanOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteRescoreExecutionPlan") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "deleteRescoreExecutionPlan") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.DeleteRescoreExecutionPlan")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DeleteRescoreExecutionPlanRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Gets information about a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + public func describeRescoreExecutionPlan(input: DescribeRescoreExecutionPlanInput) async throws -> DescribeRescoreExecutionPlanOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeRescoreExecutionPlan") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "describeRescoreExecutionPlan") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.DescribeRescoreExecutionPlan")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DescribeRescoreExecutionPlanRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Lists your rescore execution plans. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + public func listRescoreExecutionPlans(input: ListRescoreExecutionPlansInput) async throws -> ListRescoreExecutionPlansOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listRescoreExecutionPlans") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listRescoreExecutionPlans") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.ListRescoreExecutionPlans")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ListRescoreExecutionPlansRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Gets a list of tags associated with a specified resource. A rescore execution plan is an example of a resource that can have tags associated with it. + public func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listTagsForResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "listTagsForResource") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.ListTagsForResource")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ListTagsForResourceRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Rescores or re-ranks search results from a search service such as OpenSearch (self managed). You use the semantic search capabilities of Amazon Kendra Intelligent Ranking to improve the search service's results. + public func rescore(input: RescoreInput) async throws -> RescoreOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "rescore") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "rescore") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.Rescore")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "RescoreRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Adds a specified tag to a specified rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. If the tag already exists, the existing value is replaced with the new value. + public func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "tagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "tagResource") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.TagResource")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "TagResourceRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Removes a tag from a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore operation. + public func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "untagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "untagResource") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.UntagResource")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UntagResourceRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + + /// Updates a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You can update the number of capacity units you require for Amazon Kendra Intelligent Ranking to rescore or re-rank a search service's results. + public func updateRescoreExecutionPlan(input: UpdateRescoreExecutionPlanInput) async throws -> UpdateRescoreExecutionPlanOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateRescoreExecutionPlan") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "kendra-ranking") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateRescoreExecutionPlan") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AWSKendraRerankingFrontendService.UpdateRescoreExecutionPlan")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateRescoreExecutionPlanRequest")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + +} diff --git a/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift b/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift new file mode 100644 index 00000000000..1b1e19cbf85 --- /dev/null +++ b/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift @@ -0,0 +1,32 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import AWSClientRuntime +import ClientRuntime + +/// Amazon Kendra Intelligent Ranking uses Amazon Kendra semantic search capabilities to intelligently re-rank a search service's results. +public protocol KendraRankingClientProtocol { + /// Creates a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You set the number of capacity units that you require for Amazon Kendra Intelligent Ranking to rescore or re-rank a search service's results. For an example of using the CreateRescoreExecutionPlan API, including using the Python and Java SDKs, see [Semantically ranking a search service's results](https://docs.aws.amazon.com/kendra/latest/dg/search-service-rerank.html). + func createRescoreExecutionPlan(input: CreateRescoreExecutionPlanInput) async throws -> CreateRescoreExecutionPlanOutputResponse + /// Deletes a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + func deleteRescoreExecutionPlan(input: DeleteRescoreExecutionPlanInput) async throws -> DeleteRescoreExecutionPlanOutputResponse + /// Gets information about a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + func describeRescoreExecutionPlan(input: DescribeRescoreExecutionPlanInput) async throws -> DescribeRescoreExecutionPlanOutputResponse + /// Lists your rescore execution plans. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + func listRescoreExecutionPlans(input: ListRescoreExecutionPlansInput) async throws -> ListRescoreExecutionPlansOutputResponse + /// Gets a list of tags associated with a specified resource. A rescore execution plan is an example of a resource that can have tags associated with it. + func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutputResponse + /// Rescores or re-ranks search results from a search service such as OpenSearch (self managed). You use the semantic search capabilities of Amazon Kendra Intelligent Ranking to improve the search service's results. + func rescore(input: RescoreInput) async throws -> RescoreOutputResponse + /// Adds a specified tag to a specified rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. If the tag already exists, the existing value is replaced with the new value. + func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse + /// Removes a tag from a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore operation. + func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutputResponse + /// Updates a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You can update the number of capacity units you require for Amazon Kendra Intelligent Ranking to rescore or re-rank a search service's results. + func updateRescoreExecutionPlan(input: UpdateRescoreExecutionPlanInput) async throws -> UpdateRescoreExecutionPlanOutputResponse +} + +public protocol KendraRankingClientConfigurationProtocol : AWSClientRuntime.AWSClientConfiguration { + var endpointResolver: EndpointResolver { get } +} + +public enum KendraRankingClientTypes {} diff --git a/Sources/Services/AWSKendraRanking/Paginators.swift b/Sources/Services/AWSKendraRanking/Paginators.swift new file mode 100644 index 00000000000..92013f04613 --- /dev/null +++ b/Sources/Services/AWSKendraRanking/Paginators.swift @@ -0,0 +1,25 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import ClientRuntime + +extension KendraRankingClient { + /// Paginate over `[ListRescoreExecutionPlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRescoreExecutionPlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRescoreExecutionPlansOutputResponse` + public func listRescoreExecutionPlansPaginated(input: ListRescoreExecutionPlansInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRescoreExecutionPlansInput.nextToken, outputKey: \ListRescoreExecutionPlansOutputResponse.nextToken, paginationFunction: self.listRescoreExecutionPlans(input:)) + } +} + +extension ListRescoreExecutionPlansInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListRescoreExecutionPlansInput { + return ListRescoreExecutionPlansInput( + maxResults: self.maxResults, + nextToken: token + )} +} diff --git a/Sources/Services/AWSKendraRanking/models/Models.swift b/Sources/Services/AWSKendraRanking/models/Models.swift new file mode 100644 index 00000000000..00ace058ce7 --- /dev/null +++ b/Sources/Services/AWSKendraRanking/models/Models.swift @@ -0,0 +1,2028 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! +import AWSClientRuntime +import ClientRuntime + +extension AccessDeniedException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: AccessDeniedExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// You don’t have sufficient access to perform this action. Please ensure you have the required permission policies and user accounts and try again. +public struct AccessDeniedException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct AccessDeniedExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension AccessDeniedExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension KendraRankingClientTypes.CapacityUnitsConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case rescoreCapacityUnits = "RescoreCapacityUnits" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let rescoreCapacityUnits = self.rescoreCapacityUnits { + try encodeContainer.encode(rescoreCapacityUnits, forKey: .rescoreCapacityUnits) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let rescoreCapacityUnitsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .rescoreCapacityUnits) + rescoreCapacityUnits = rescoreCapacityUnitsDecoded + } +} + +extension KendraRankingClientTypes { + /// Sets additional capacity units configured for your rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You can add and remove capacity units to fit your usage requirements. + public struct CapacityUnitsConfiguration: Swift.Equatable { + /// The amount of extra capacity for your rescore execution plan. A single extra capacity unit for a rescore execution plan provides 0.01 rescore requests per second. You can add up to 1000 extra capacity units. + /// This member is required. + public var rescoreCapacityUnits: Swift.Int? + + public init ( + rescoreCapacityUnits: Swift.Int? = nil + ) + { + self.rescoreCapacityUnits = rescoreCapacityUnits + } + } + +} + +extension ConflictException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ConflictExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// A conflict occurred with the request. Please fix any inconsistencies with your resources and try again. +public struct ConflictException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ConflictExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ConflictExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension CreateRescoreExecutionPlanInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case capacityUnits = "CapacityUnits" + case clientToken = "ClientToken" + case description = "Description" + case name = "Name" + case tags = "Tags" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let capacityUnits = self.capacityUnits { + try encodeContainer.encode(capacityUnits, forKey: .capacityUnits) + } + if let clientToken = self.clientToken { + try encodeContainer.encode(clientToken, forKey: .clientToken) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let tags = tags { + var tagsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tags) + for tag0 in tags { + try tagsContainer.encode(tag0) + } + } + } +} + +extension CreateRescoreExecutionPlanInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct CreateRescoreExecutionPlanInput: Swift.Equatable { + /// You can set additional capacity units to meet the needs of your rescore execution plan. You are given a single capacity unit by default. If you want to use the default capacity, you don't set additional capacity units. For more information on the default capacity and additional capacity units, see [Adjusting capacity](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html). + public var capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? + /// A token that you provide to identify the request to create a rescore execution plan. Multiple calls to the CreateRescoreExecutionPlanRequest API with the same client token will create only one rescore execution plan. + public var clientToken: Swift.String? + /// A description for the rescore execution plan. + public var description: Swift.String? + /// A name for the rescore execution plan. + /// This member is required. + public var name: Swift.String? + /// A list of key-value pairs that identify or categorize your rescore execution plan. You can also use tags to help control access to the rescore execution plan. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. + public var tags: [KendraRankingClientTypes.Tag]? + + public init ( + capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? = nil, + clientToken: Swift.String? = nil, + description: Swift.String? = nil, + name: Swift.String? = nil, + tags: [KendraRankingClientTypes.Tag]? = nil + ) + { + self.capacityUnits = capacityUnits + self.clientToken = clientToken + self.description = description + self.name = name + self.tags = tags + } +} + +struct CreateRescoreExecutionPlanInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? + let capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? + let tags: [KendraRankingClientTypes.Tag]? + let clientToken: Swift.String? +} + +extension CreateRescoreExecutionPlanInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case capacityUnits = "CapacityUnits" + case clientToken = "ClientToken" + case description = "Description" + case name = "Name" + case tags = "Tags" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let capacityUnitsDecoded = try containerValues.decodeIfPresent(KendraRankingClientTypes.CapacityUnitsConfiguration.self, forKey: .capacityUnits) + capacityUnits = capacityUnitsDecoded + let tagsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.Tag?].self, forKey: .tags) + var tagsDecoded0:[KendraRankingClientTypes.Tag]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [KendraRankingClientTypes.Tag]() + for structure0 in tagsContainer { + if let structure0 = structure0 { + tagsDecoded0?.append(structure0) + } + } + } + tags = tagsDecoded0 + let clientTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .clientToken) + clientToken = clientTokenDecoded + } +} + +extension CreateRescoreExecutionPlanOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension CreateRescoreExecutionPlanOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum CreateRescoreExecutionPlanOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension CreateRescoreExecutionPlanOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: CreateRescoreExecutionPlanOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.arn = output.arn + self.id = output.id + } else { + self.arn = nil + self.id = nil + } + } +} + +public struct CreateRescoreExecutionPlanOutputResponse: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the rescore execution plan. + /// This member is required. + public var arn: Swift.String? + /// The identifier of the rescore execution plan. + /// This member is required. + public var id: Swift.String? + + public init ( + arn: Swift.String? = nil, + id: Swift.String? = nil + ) + { + self.arn = arn + self.id = id + } +} + +struct CreateRescoreExecutionPlanOutputResponseBody: Swift.Equatable { + let id: Swift.String? + let arn: Swift.String? +} + +extension CreateRescoreExecutionPlanOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn = "Arn" + case id = "Id" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + } +} + +extension DeleteRescoreExecutionPlanInput: Swift.Encodable { + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.singleValueContainer() + try container.encode([String:String]()) + } +} + +extension DeleteRescoreExecutionPlanInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct DeleteRescoreExecutionPlanInput: Swift.Equatable { + /// The identifier of the rescore execution plan that you want to delete. + /// This member is required. + public var id: Swift.String? + + public init ( + id: Swift.String? = nil + ) + { + self.id = id + } +} + +struct DeleteRescoreExecutionPlanInputBody: Swift.Equatable { +} + +extension DeleteRescoreExecutionPlanInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DeleteRescoreExecutionPlanOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DeleteRescoreExecutionPlanOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DeleteRescoreExecutionPlanOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DeleteRescoreExecutionPlanOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct DeleteRescoreExecutionPlanOutputResponse: Swift.Equatable { + + public init () { } +} + +extension DescribeRescoreExecutionPlanInput: Swift.Encodable { + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.singleValueContainer() + try container.encode([String:String]()) + } +} + +extension DescribeRescoreExecutionPlanInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct DescribeRescoreExecutionPlanInput: Swift.Equatable { + /// The identifier of the rescore execution plan that you want to get information on. + /// This member is required. + public var id: Swift.String? + + public init ( + id: Swift.String? = nil + ) + { + self.id = id + } +} + +struct DescribeRescoreExecutionPlanInputBody: Swift.Equatable { +} + +extension DescribeRescoreExecutionPlanInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension DescribeRescoreExecutionPlanOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension DescribeRescoreExecutionPlanOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum DescribeRescoreExecutionPlanOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension DescribeRescoreExecutionPlanOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: DescribeRescoreExecutionPlanOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.arn = output.arn + self.capacityUnits = output.capacityUnits + self.createdAt = output.createdAt + self.description = output.description + self.errorMessage = output.errorMessage + self.id = output.id + self.name = output.name + self.status = output.status + self.updatedAt = output.updatedAt + } else { + self.arn = nil + self.capacityUnits = nil + self.createdAt = nil + self.description = nil + self.errorMessage = nil + self.id = nil + self.name = nil + self.status = nil + self.updatedAt = nil + } + } +} + +public struct DescribeRescoreExecutionPlanOutputResponse: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the rescore execution plan. + public var arn: Swift.String? + /// The capacity units set for the rescore execution plan. A capacity of zero indicates that the rescore execution plan is using the default capacity. For more information on the default capacity and additional capacity units, see [Adjusting capacity](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html). + public var capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? + /// The Unix timestamp of when the rescore execution plan was created. + public var createdAt: ClientRuntime.Date? + /// The description for the rescore execution plan. + public var description: Swift.String? + /// When the Status field value is FAILED, the ErrorMessage field contains a message that explains why. + public var errorMessage: Swift.String? + /// The identifier of the rescore execution plan. + public var id: Swift.String? + /// The name for the rescore execution plan. + public var name: Swift.String? + /// The current status of the rescore execution plan. When the value is ACTIVE, the rescore execution plan is ready for use. If the Status field value is FAILED, the ErrorMessage field contains a message that explains why. + public var status: KendraRankingClientTypes.RescoreExecutionPlanStatus? + /// The Unix timestamp of when the rescore execution plan was last updated. + public var updatedAt: ClientRuntime.Date? + + public init ( + arn: Swift.String? = nil, + capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? = nil, + createdAt: ClientRuntime.Date? = nil, + description: Swift.String? = nil, + errorMessage: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil, + status: KendraRankingClientTypes.RescoreExecutionPlanStatus? = nil, + updatedAt: ClientRuntime.Date? = nil + ) + { + self.arn = arn + self.capacityUnits = capacityUnits + self.createdAt = createdAt + self.description = description + self.errorMessage = errorMessage + self.id = id + self.name = name + self.status = status + self.updatedAt = updatedAt + } +} + +struct DescribeRescoreExecutionPlanOutputResponseBody: Swift.Equatable { + let id: Swift.String? + let arn: Swift.String? + let name: Swift.String? + let description: Swift.String? + let capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? + let createdAt: ClientRuntime.Date? + let updatedAt: ClientRuntime.Date? + let status: KendraRankingClientTypes.RescoreExecutionPlanStatus? + let errorMessage: Swift.String? +} + +extension DescribeRescoreExecutionPlanOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case arn = "Arn" + case capacityUnits = "CapacityUnits" + case createdAt = "CreatedAt" + case description = "Description" + case errorMessage = "ErrorMessage" + case id = "Id" + case name = "Name" + case status = "Status" + case updatedAt = "UpdatedAt" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let capacityUnitsDecoded = try containerValues.decodeIfPresent(KendraRankingClientTypes.CapacityUnitsConfiguration.self, forKey: .capacityUnits) + capacityUnits = capacityUnitsDecoded + let createdAtDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createdAt) + createdAt = createdAtDecoded + let updatedAtDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updatedAt) + updatedAt = updatedAtDecoded + let statusDecoded = try containerValues.decodeIfPresent(KendraRankingClientTypes.RescoreExecutionPlanStatus.self, forKey: .status) + status = statusDecoded + let errorMessageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .errorMessage) + errorMessage = errorMessageDecoded + } +} + +extension KendraRankingClientTypes.Document: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case body = "Body" + case groupId = "GroupId" + case id = "Id" + case originalScore = "OriginalScore" + case title = "Title" + case tokenizedBody = "TokenizedBody" + case tokenizedTitle = "TokenizedTitle" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let body = self.body { + try encodeContainer.encode(body, forKey: .body) + } + if let groupId = self.groupId { + try encodeContainer.encode(groupId, forKey: .groupId) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let originalScore = self.originalScore { + try encodeContainer.encode(originalScore, forKey: .originalScore) + } + if let title = self.title { + try encodeContainer.encode(title, forKey: .title) + } + if let tokenizedBody = tokenizedBody { + var tokenizedBodyContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tokenizedBody) + for tokens0 in tokenizedBody { + try tokenizedBodyContainer.encode(tokens0) + } + } + if let tokenizedTitle = tokenizedTitle { + var tokenizedTitleContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tokenizedTitle) + for tokens0 in tokenizedTitle { + try tokenizedTitleContainer.encode(tokens0) + } + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let groupIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .groupId) + groupId = groupIdDecoded + let titleDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .title) + title = titleDecoded + let bodyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .body) + body = bodyDecoded + let tokenizedTitleContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .tokenizedTitle) + var tokenizedTitleDecoded0:[Swift.String]? = nil + if let tokenizedTitleContainer = tokenizedTitleContainer { + tokenizedTitleDecoded0 = [Swift.String]() + for string0 in tokenizedTitleContainer { + if let string0 = string0 { + tokenizedTitleDecoded0?.append(string0) + } + } + } + tokenizedTitle = tokenizedTitleDecoded0 + let tokenizedBodyContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .tokenizedBody) + var tokenizedBodyDecoded0:[Swift.String]? = nil + if let tokenizedBodyContainer = tokenizedBodyContainer { + tokenizedBodyDecoded0 = [Swift.String]() + for string0 in tokenizedBodyContainer { + if let string0 = string0 { + tokenizedBodyDecoded0?.append(string0) + } + } + } + tokenizedBody = tokenizedBodyDecoded0 + let originalScoreDecoded = try containerValues.decodeIfPresent(Swift.Float.self, forKey: .originalScore) + originalScore = originalScoreDecoded + } +} + +extension KendraRankingClientTypes { + /// Information about a document from a search service such as OpenSearch (self managed). Amazon Kendra Intelligent Ranking uses this information to rank and score on. + public struct Document: Swift.Equatable { + /// The body text of the search service's document. + public var body: Swift.String? + /// The optional group identifier of the document from the search service. Documents with the same group identifier are grouped together and processed as one document within the service. + public var groupId: Swift.String? + /// The identifier of the document from the search service. + /// This member is required. + public var id: Swift.String? + /// The original document score or rank from the search service. Amazon Kendra Intelligent Ranking gives the document a new score or rank based on its intelligent search algorithms. + /// This member is required. + public var originalScore: Swift.Float? + /// The title of the search service's document. + public var title: Swift.String? + /// The body text of the search service's document represented as a list of tokens or words. You must choose to provide Body or TokenizedBody. You cannot provide both. + public var tokenizedBody: [Swift.String]? + /// The title of the search service's document represented as a list of tokens or words. You must choose to provide Title or TokenizedTitle. You cannot provide both. + public var tokenizedTitle: [Swift.String]? + + public init ( + body: Swift.String? = nil, + groupId: Swift.String? = nil, + id: Swift.String? = nil, + originalScore: Swift.Float? = nil, + title: Swift.String? = nil, + tokenizedBody: [Swift.String]? = nil, + tokenizedTitle: [Swift.String]? = nil + ) + { + self.body = body + self.groupId = groupId + self.id = id + self.originalScore = originalScore + self.title = title + self.tokenizedBody = tokenizedBody + self.tokenizedTitle = tokenizedTitle + } + } + +} + +extension InternalServerException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: InternalServerExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// An issue occurred with the internal server used for your Amazon Kendra Intelligent Ranking service. Please wait a few minutes and try again, or contact [Support](http://aws.amazon.com/contact-us/) for help. +public struct InternalServerException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .server + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct InternalServerExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension InternalServerExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension ListRescoreExecutionPlansInput: Swift.Encodable { + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.singleValueContainer() + try container.encode([String:String]()) + } +} + +extension ListRescoreExecutionPlansInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + return items + } + } +} + +extension ListRescoreExecutionPlansInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct ListRescoreExecutionPlansInput: Swift.Equatable { + /// The maximum number of rescore execution plans to return. + public var maxResults: Swift.Int? + /// If the response is truncated, Amazon Kendra Intelligent Ranking returns a pagination token in the response. You can use this pagination token to retrieve the next set of rescore execution plans. + public var nextToken: Swift.String? + + public init ( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +struct ListRescoreExecutionPlansInputBody: Swift.Equatable { +} + +extension ListRescoreExecutionPlansInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension ListRescoreExecutionPlansOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListRescoreExecutionPlansOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListRescoreExecutionPlansOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListRescoreExecutionPlansOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListRescoreExecutionPlansOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.nextToken = output.nextToken + self.summaryItems = output.summaryItems + } else { + self.nextToken = nil + self.summaryItems = nil + } + } +} + +public struct ListRescoreExecutionPlansOutputResponse: Swift.Equatable { + /// If the response is truncated, Amazon Kendra Intelligent Ranking returns a pagination token in the response. + public var nextToken: Swift.String? + /// An array of summary information for one or more rescore execution plans. + public var summaryItems: [KendraRankingClientTypes.RescoreExecutionPlanSummary]? + + public init ( + nextToken: Swift.String? = nil, + summaryItems: [KendraRankingClientTypes.RescoreExecutionPlanSummary]? = nil + ) + { + self.nextToken = nextToken + self.summaryItems = summaryItems + } +} + +struct ListRescoreExecutionPlansOutputResponseBody: Swift.Equatable { + let summaryItems: [KendraRankingClientTypes.RescoreExecutionPlanSummary]? + let nextToken: Swift.String? +} + +extension ListRescoreExecutionPlansOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case nextToken = "NextToken" + case summaryItems = "SummaryItems" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let summaryItemsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.RescoreExecutionPlanSummary?].self, forKey: .summaryItems) + var summaryItemsDecoded0:[KendraRankingClientTypes.RescoreExecutionPlanSummary]? = nil + if let summaryItemsContainer = summaryItemsContainer { + summaryItemsDecoded0 = [KendraRankingClientTypes.RescoreExecutionPlanSummary]() + for structure0 in summaryItemsContainer { + if let structure0 = structure0 { + summaryItemsDecoded0?.append(structure0) + } + } + } + summaryItems = summaryItemsDecoded0 + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + +extension ListTagsForResourceInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let resourceARN = self.resourceARN { + try encodeContainer.encode(resourceARN, forKey: .resourceARN) + } + } +} + +extension ListTagsForResourceInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// The request information for listing tags associated with a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. +public struct ListTagsForResourceInput: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the rescore execution plan to get a list of tags for. + /// This member is required. + public var resourceARN: Swift.String? + + public init ( + resourceARN: Swift.String? = nil + ) + { + self.resourceARN = resourceARN + } +} + +struct ListTagsForResourceInputBody: Swift.Equatable { + let resourceARN: Swift.String? +} + +extension ListTagsForResourceInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let resourceARNDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceARN) + resourceARN = resourceARNDecoded + } +} + +extension ListTagsForResourceOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension ListTagsForResourceOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceUnavailableException" : self = .resourceUnavailableException(try ResourceUnavailableException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum ListTagsForResourceOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceUnavailableException(ResourceUnavailableException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension ListTagsForResourceOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ListTagsForResourceOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.tags = output.tags + } else { + self.tags = nil + } + } +} + +/// If the action is successful, the service sends back an HTTP 200 response. +public struct ListTagsForResourceOutputResponse: Swift.Equatable { + /// A list of tags associated with the rescore execution plan. + public var tags: [KendraRankingClientTypes.Tag]? + + public init ( + tags: [KendraRankingClientTypes.Tag]? = nil + ) + { + self.tags = tags + } +} + +struct ListTagsForResourceOutputResponseBody: Swift.Equatable { + let tags: [KendraRankingClientTypes.Tag]? +} + +extension ListTagsForResourceOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case tags = "Tags" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let tagsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.Tag?].self, forKey: .tags) + var tagsDecoded0:[KendraRankingClientTypes.Tag]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [KendraRankingClientTypes.Tag]() + for structure0 in tagsContainer { + if let structure0 = structure0 { + tagsDecoded0?.append(structure0) + } + } + } + tags = tagsDecoded0 + } +} + +extension KendraRankingClientTypes { + public enum RescoreExecutionPlanStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case creating + case deleting + case failed + case updating + case sdkUnknown(Swift.String) + + public static var allCases: [RescoreExecutionPlanStatus] { + return [ + .active, + .creating, + .deleting, + .failed, + .updating, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .creating: return "CREATING" + case .deleting: return "DELETING" + case .failed: return "FAILED" + case .updating: return "UPDATING" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = RescoreExecutionPlanStatus(rawValue: rawValue) ?? RescoreExecutionPlanStatus.sdkUnknown(rawValue) + } + } +} + +extension KendraRankingClientTypes.RescoreExecutionPlanSummary: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case createdAt = "CreatedAt" + case id = "Id" + case name = "Name" + case status = "Status" + case updatedAt = "UpdatedAt" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let createdAt = self.createdAt { + try encodeContainer.encodeTimestamp(createdAt, format: .epochSeconds, forKey: .createdAt) + } + if let id = self.id { + try encodeContainer.encode(id, forKey: .id) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + if let status = self.status { + try encodeContainer.encode(status.rawValue, forKey: .status) + } + if let updatedAt = self.updatedAt { + try encodeContainer.encodeTimestamp(updatedAt, format: .epochSeconds, forKey: .updatedAt) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let idDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .id) + id = idDecoded + let createdAtDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .createdAt) + createdAt = createdAtDecoded + let updatedAtDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .updatedAt) + updatedAt = updatedAtDecoded + let statusDecoded = try containerValues.decodeIfPresent(KendraRankingClientTypes.RescoreExecutionPlanStatus.self, forKey: .status) + status = statusDecoded + } +} + +extension KendraRankingClientTypes { + /// Summary information for a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + public struct RescoreExecutionPlanSummary: Swift.Equatable { + /// The Unix timestamp when the rescore execution plan was created. + public var createdAt: ClientRuntime.Date? + /// The identifier of the rescore execution plan. + public var id: Swift.String? + /// The name of the rescore execution plan. + public var name: Swift.String? + /// The current status of the rescore execution plan. When the value is ACTIVE, the rescore execution plan is ready for use. + public var status: KendraRankingClientTypes.RescoreExecutionPlanStatus? + /// The Unix timestamp when the rescore execution plan was last updated. + public var updatedAt: ClientRuntime.Date? + + public init ( + createdAt: ClientRuntime.Date? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil, + status: KendraRankingClientTypes.RescoreExecutionPlanStatus? = nil, + updatedAt: ClientRuntime.Date? = nil + ) + { + self.createdAt = createdAt + self.id = id + self.name = name + self.status = status + self.updatedAt = updatedAt + } + } + +} + +extension RescoreInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case documents = "Documents" + case searchQuery = "SearchQuery" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let documents = documents { + var documentsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .documents) + for document0 in documents { + try documentsContainer.encode(document0) + } + } + if let searchQuery = self.searchQuery { + try encodeContainer.encode(searchQuery, forKey: .searchQuery) + } + } +} + +extension RescoreInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct RescoreInput: Swift.Equatable { + /// The list of documents for Amazon Kendra Intelligent Ranking to rescore or rank on. + /// This member is required. + public var documents: [KendraRankingClientTypes.Document]? + /// The identifier of the rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. + /// This member is required. + public var rescoreExecutionPlanId: Swift.String? + /// The input query from the search service. + /// This member is required. + public var searchQuery: Swift.String? + + public init ( + documents: [KendraRankingClientTypes.Document]? = nil, + rescoreExecutionPlanId: Swift.String? = nil, + searchQuery: Swift.String? = nil + ) + { + self.documents = documents + self.rescoreExecutionPlanId = rescoreExecutionPlanId + self.searchQuery = searchQuery + } +} + +struct RescoreInputBody: Swift.Equatable { + let searchQuery: Swift.String? + let documents: [KendraRankingClientTypes.Document]? +} + +extension RescoreInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case documents = "Documents" + case searchQuery = "SearchQuery" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let searchQueryDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .searchQuery) + searchQuery = searchQueryDecoded + let documentsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.Document?].self, forKey: .documents) + var documentsDecoded0:[KendraRankingClientTypes.Document]? = nil + if let documentsContainer = documentsContainer { + documentsDecoded0 = [KendraRankingClientTypes.Document]() + for structure0 in documentsContainer { + if let structure0 = structure0 { + documentsDecoded0?.append(structure0) + } + } + } + documents = documentsDecoded0 + } +} + +extension RescoreOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension RescoreOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum RescoreOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension RescoreOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: RescoreOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.rescoreId = output.rescoreId + self.resultItems = output.resultItems + } else { + self.rescoreId = nil + self.resultItems = nil + } + } +} + +public struct RescoreOutputResponse: Swift.Equatable { + /// The identifier associated with the scores that Amazon Kendra Intelligent Ranking gives to the results. Amazon Kendra Intelligent Ranking rescores or re-ranks the results for the search service. + public var rescoreId: Swift.String? + /// A list of result items for documents with new relevancy scores. The results are in descending order. + public var resultItems: [KendraRankingClientTypes.RescoreResultItem]? + + public init ( + rescoreId: Swift.String? = nil, + resultItems: [KendraRankingClientTypes.RescoreResultItem]? = nil + ) + { + self.rescoreId = rescoreId + self.resultItems = resultItems + } +} + +struct RescoreOutputResponseBody: Swift.Equatable { + let rescoreId: Swift.String? + let resultItems: [KendraRankingClientTypes.RescoreResultItem]? +} + +extension RescoreOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case rescoreId = "RescoreId" + case resultItems = "ResultItems" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let rescoreIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .rescoreId) + rescoreId = rescoreIdDecoded + let resultItemsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.RescoreResultItem?].self, forKey: .resultItems) + var resultItemsDecoded0:[KendraRankingClientTypes.RescoreResultItem]? = nil + if let resultItemsContainer = resultItemsContainer { + resultItemsDecoded0 = [KendraRankingClientTypes.RescoreResultItem]() + for structure0 in resultItemsContainer { + if let structure0 = structure0 { + resultItemsDecoded0?.append(structure0) + } + } + } + resultItems = resultItemsDecoded0 + } +} + +extension KendraRankingClientTypes.RescoreResultItem: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case documentId = "DocumentId" + case score = "Score" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let documentId = self.documentId { + try encodeContainer.encode(documentId, forKey: .documentId) + } + if let score = self.score { + try encodeContainer.encode(score, forKey: .score) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let documentIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .documentId) + documentId = documentIdDecoded + let scoreDecoded = try containerValues.decodeIfPresent(Swift.Float.self, forKey: .score) + score = scoreDecoded + } +} + +extension KendraRankingClientTypes { + /// A result item for a document with a new relevancy score. + public struct RescoreResultItem: Swift.Equatable { + /// The identifier of the document from the search service. + public var documentId: Swift.String? + /// The relevancy score or rank that Amazon Kendra Intelligent Ranking gives to the result. + public var score: Swift.Float? + + public init ( + documentId: Swift.String? = nil, + score: Swift.Float? = nil + ) + { + self.documentId = documentId + self.score = score + } + } + +} + +extension ResourceNotFoundException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ResourceNotFoundExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The resource you want to use doesn't exist. Please check you have provided the correct resource and try again. +public struct ResourceNotFoundException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ResourceNotFoundExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ResourceNotFoundExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension ResourceUnavailableException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ResourceUnavailableExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The resource you want to use is unavailable. Please check you have provided the correct resource information and try again. +public struct ResourceUnavailableException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ResourceUnavailableExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ResourceUnavailableExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension ServiceQuotaExceededException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ServiceQuotaExceededExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// You have exceeded the set limits for your Amazon Kendra Intelligent Ranking service. Please see [Quotas](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html) for more information, or contact [Support](http://aws.amazon.com/contact-us/) to inquire about an increase of limits. +public struct ServiceQuotaExceededException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ServiceQuotaExceededExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ServiceQuotaExceededExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension KendraRankingClientTypes.Tag: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case key = "Key" + case value = "Value" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let key = self.key { + try encodeContainer.encode(key, forKey: .key) + } + if let value = self.value { + try encodeContainer.encode(value, forKey: .value) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let keyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .key) + key = keyDecoded + let valueDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .value) + value = valueDecoded + } +} + +extension KendraRankingClientTypes { + /// A key-value pair that identifies or categorizes a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. You can also use a tag to help control access to a rescore execution plan. A tag key and value can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. + public struct Tag: Swift.Equatable { + /// The key for the tag. Keys are not case sensitive and must be unique. + /// This member is required. + public var key: Swift.String? + /// The value associated with the tag. The value can be an empty string but it can't be null. + /// This member is required. + public var value: Swift.String? + + public init ( + key: Swift.String? = nil, + value: Swift.String? = nil + ) + { + self.key = key + self.value = value + } + } + +} + +extension TagResourceInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + case tags = "Tags" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let resourceARN = self.resourceARN { + try encodeContainer.encode(resourceARN, forKey: .resourceARN) + } + if let tags = tags { + var tagsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tags) + for tag0 in tags { + try tagsContainer.encode(tag0) + } + } + } +} + +extension TagResourceInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// The request information for tagging a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. +public struct TagResourceInput: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the rescore execution plan to tag. + /// This member is required. + public var resourceARN: Swift.String? + /// A list of tag keys to add to a rescore execution plan. If a tag already exists, the existing value is replaced with the new value. + /// This member is required. + public var tags: [KendraRankingClientTypes.Tag]? + + public init ( + resourceARN: Swift.String? = nil, + tags: [KendraRankingClientTypes.Tag]? = nil + ) + { + self.resourceARN = resourceARN + self.tags = tags + } +} + +struct TagResourceInputBody: Swift.Equatable { + let resourceARN: Swift.String? + let tags: [KendraRankingClientTypes.Tag]? +} + +extension TagResourceInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + case tags = "Tags" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let resourceARNDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceARN) + resourceARN = resourceARNDecoded + let tagsContainer = try containerValues.decodeIfPresent([KendraRankingClientTypes.Tag?].self, forKey: .tags) + var tagsDecoded0:[KendraRankingClientTypes.Tag]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [KendraRankingClientTypes.Tag]() + for structure0 in tagsContainer { + if let structure0 = structure0 { + tagsDecoded0?.append(structure0) + } + } + } + tags = tagsDecoded0 + } +} + +extension TagResourceOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension TagResourceOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceUnavailableException" : self = .resourceUnavailableException(try ResourceUnavailableException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum TagResourceOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceUnavailableException(ResourceUnavailableException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension TagResourceOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +/// If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body. +public struct TagResourceOutputResponse: Swift.Equatable { + + public init () { } +} + +extension ThrottlingException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ThrottlingExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The request was denied due to request throttling. Please reduce the number of requests and try again. +public struct ThrottlingException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ThrottlingExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ThrottlingExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + +extension UntagResourceInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + case tagKeys = "TagKeys" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let resourceARN = self.resourceARN { + try encodeContainer.encode(resourceARN, forKey: .resourceARN) + } + if let tagKeys = tagKeys { + var tagKeysContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tagKeys) + for tagkey0 in tagKeys { + try tagKeysContainer.encode(tagkey0) + } + } + } +} + +extension UntagResourceInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// The request information to remove a tag from a rescore execution plan. A rescore execution plan is an Amazon Kendra Intelligent Ranking resource used for provisioning the Rescore API. +public struct UntagResourceInput: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the rescore execution plan to remove the tag. + /// This member is required. + public var resourceARN: Swift.String? + /// A list of tag keys to remove from the rescore execution plan. If a tag key does not exist on the resource, it is ignored. + /// This member is required. + public var tagKeys: [Swift.String]? + + public init ( + resourceARN: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.resourceARN = resourceARN + self.tagKeys = tagKeys + } +} + +struct UntagResourceInputBody: Swift.Equatable { + let resourceARN: Swift.String? + let tagKeys: [Swift.String]? +} + +extension UntagResourceInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceARN = "ResourceARN" + case tagKeys = "TagKeys" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let resourceARNDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceARN) + resourceARN = resourceARNDecoded + let tagKeysContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .tagKeys) + var tagKeysDecoded0:[Swift.String]? = nil + if let tagKeysContainer = tagKeysContainer { + tagKeysDecoded0 = [Swift.String]() + for string0 in tagKeysContainer { + if let string0 = string0 { + tagKeysDecoded0?.append(string0) + } + } + } + tagKeys = tagKeysDecoded0 + } +} + +extension UntagResourceOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UntagResourceOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceUnavailableException" : self = .resourceUnavailableException(try ResourceUnavailableException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UntagResourceOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case internalServerException(InternalServerException) + case resourceUnavailableException(ResourceUnavailableException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UntagResourceOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +/// If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body. +public struct UntagResourceOutputResponse: Swift.Equatable { + + public init () { } +} + +extension UpdateRescoreExecutionPlanInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case capacityUnits = "CapacityUnits" + case description = "Description" + case name = "Name" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let capacityUnits = self.capacityUnits { + try encodeContainer.encode(capacityUnits, forKey: .capacityUnits) + } + if let description = self.description { + try encodeContainer.encode(description, forKey: .description) + } + if let name = self.name { + try encodeContainer.encode(name, forKey: .name) + } + } +} + +extension UpdateRescoreExecutionPlanInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct UpdateRescoreExecutionPlanInput: Swift.Equatable { + /// You can set additional capacity units to meet the needs of your rescore execution plan. You are given a single capacity unit by default. If you want to use the default capacity, you don't set additional capacity units. For more information on the default capacity and additional capacity units, see [Adjusting capacity](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html). + public var capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? + /// A new description for the rescore execution plan. + public var description: Swift.String? + /// The identifier of the rescore execution plan that you want to update. + /// This member is required. + public var id: Swift.String? + /// A new name for the rescore execution plan. + public var name: Swift.String? + + public init ( + capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.capacityUnits = capacityUnits + self.description = description + self.id = id + self.name = name + } +} + +struct UpdateRescoreExecutionPlanInputBody: Swift.Equatable { + let name: Swift.String? + let description: Swift.String? + let capacityUnits: KendraRankingClientTypes.CapacityUnitsConfiguration? +} + +extension UpdateRescoreExecutionPlanInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case capacityUnits = "CapacityUnits" + case description = "Description" + case name = "Name" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) + name = nameDecoded + let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) + description = descriptionDecoded + let capacityUnitsDecoded = try containerValues.decodeIfPresent(KendraRankingClientTypes.CapacityUnitsConfiguration.self, forKey: .capacityUnits) + capacityUnits = capacityUnitsDecoded + } +} + +extension UpdateRescoreExecutionPlanOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateRescoreExecutionPlanOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ResourceNotFoundException" : self = .resourceNotFoundException(try ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateRescoreExecutionPlanOutputError: Swift.Error, Swift.Equatable { + case accessDeniedException(AccessDeniedException) + case conflictException(ConflictException) + case internalServerException(InternalServerException) + case resourceNotFoundException(ResourceNotFoundException) + case serviceQuotaExceededException(ServiceQuotaExceededException) + case throttlingException(ThrottlingException) + case validationException(ValidationException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateRescoreExecutionPlanOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + } +} + +public struct UpdateRescoreExecutionPlanOutputResponse: Swift.Equatable { + + public init () { } +} + +extension ValidationException { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: ValidationExceptionBody = try responseDecoder.decode(responseBody: data) + self.message = output.message + } else { + self.message = nil + } + self._headers = httpResponse.headers + self._statusCode = httpResponse.statusCode + self._requestID = requestID + self._message = message + } +} + +/// The input fails to satisfy the constraints set by the Amazon Kendra Intelligent Ranking service. Please provide the correct input and try again. +public struct ValidationException: AWSClientRuntime.AWSHttpServiceError, Swift.Equatable { + public var _headers: ClientRuntime.Headers? + public var _statusCode: ClientRuntime.HttpStatusCode? + public var _message: Swift.String? + public var _requestID: Swift.String? + public var _retryable: Swift.Bool = false + public var _isThrottling: Swift.Bool = false + public var _type: ClientRuntime.ErrorType = .client + public var message: Swift.String? + + public init ( + message: Swift.String? = nil + ) + { + self.message = message + } +} + +struct ValidationExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension ValidationExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message = "Message" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} diff --git a/Sources/Services/AWSKeyspaces/Paginators.swift b/Sources/Services/AWSKeyspaces/Paginators.swift index 36cfc22b5d0..efd5969484e 100644 --- a/Sources/Services/AWSKeyspaces/Paginators.swift +++ b/Sources/Services/AWSKeyspaces/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListKeyspacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListKeyspacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListKeyspacesOutputResponse` extension KeyspacesClient { + /// Paginate over `[ListKeyspacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListKeyspacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListKeyspacesOutputResponse` public func listKeyspacesPaginated(input: ListKeyspacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListKeyspacesInput.nextToken, outputKey: \ListKeyspacesOutputResponse.nextToken, paginationFunction: self.listKeyspaces(input:)) } @@ -25,24 +24,23 @@ extension ListKeyspacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listKeyspacesPaginated` -/// to access the nested member `[KeyspacesClientTypes.KeyspaceSummary]` -/// - Returns: `[KeyspacesClientTypes.KeyspaceSummary]` extension PaginatorSequence where Input == ListKeyspacesInput, Output == ListKeyspacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listKeyspacesPaginated` + /// to access the nested member `[KeyspacesClientTypes.KeyspaceSummary]` + /// - Returns: `[KeyspacesClientTypes.KeyspaceSummary]` public func keyspaces() async throws -> [KeyspacesClientTypes.KeyspaceSummary] { return try await self.asyncCompactMap { item in item.keyspaces } } } - -/// Paginate over `[ListTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` extension KeyspacesClient { + /// Paginate over `[ListTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` public func listTablesPaginated(input: ListTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTablesInput.nextToken, outputKey: \ListTablesOutputResponse.nextToken, paginationFunction: self.listTables(input:)) } @@ -57,24 +55,23 @@ extension ListTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` -/// to access the nested member `[KeyspacesClientTypes.TableSummary]` -/// - Returns: `[KeyspacesClientTypes.TableSummary]` extension PaginatorSequence where Input == ListTablesInput, Output == ListTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` + /// to access the nested member `[KeyspacesClientTypes.TableSummary]` + /// - Returns: `[KeyspacesClientTypes.TableSummary]` public func tables() async throws -> [KeyspacesClientTypes.TableSummary] { return try await self.asyncCompactMap { item in item.tables } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension KeyspacesClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -89,10 +86,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[KeyspacesClientTypes.Tag]` -/// - Returns: `[KeyspacesClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[KeyspacesClientTypes.Tag]` + /// - Returns: `[KeyspacesClientTypes.Tag]` public func tags() async throws -> [KeyspacesClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSKinesis/Paginators.swift b/Sources/Services/AWSKinesis/Paginators.swift index 6ebd1b3e94d..60784f61b18 100644 --- a/Sources/Services/AWSKinesis/Paginators.swift +++ b/Sources/Services/AWSKinesis/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListStreamConsumersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamConsumersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamConsumersOutputResponse` extension KinesisClient { + /// Paginate over `[ListStreamConsumersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamConsumersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamConsumersOutputResponse` public func listStreamConsumersPaginated(input: ListStreamConsumersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamConsumersInput.nextToken, outputKey: \ListStreamConsumersOutputResponse.nextToken, paginationFunction: self.listStreamConsumers(input:)) } @@ -26,16 +25,15 @@ extension ListStreamConsumersInput: ClientRuntime.PaginateToken { streamCreationTimestamp: self.streamCreationTimestamp )} } - -/// Paginate over `[ListStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` extension KinesisClient { + /// Paginate over `[ListStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` public func listStreamsPaginated(input: ListStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamsInput.nextToken, outputKey: \ListStreamsOutputResponse.nextToken, paginationFunction: self.listStreams(input:)) } diff --git a/Sources/Services/AWSKinesisVideo/Paginators.swift b/Sources/Services/AWSKinesisVideo/Paginators.swift index bff8538987f..71734670cb7 100644 --- a/Sources/Services/AWSKinesisVideo/Paginators.swift +++ b/Sources/Services/AWSKinesisVideo/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeMappedResourceConfigurationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMappedResourceConfigurationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMappedResourceConfigurationOutputResponse` extension KinesisVideoClient { + /// Paginate over `[DescribeMappedResourceConfigurationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMappedResourceConfigurationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMappedResourceConfigurationOutputResponse` public func describeMappedResourceConfigurationPaginated(input: DescribeMappedResourceConfigurationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMappedResourceConfigurationInput.nextToken, outputKey: \DescribeMappedResourceConfigurationOutputResponse.nextToken, paginationFunction: self.describeMappedResourceConfiguration(input:)) } @@ -27,24 +26,23 @@ extension DescribeMappedResourceConfigurationInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMappedResourceConfigurationPaginated` -/// to access the nested member `[KinesisVideoClientTypes.MappedResourceConfigurationListItem]` -/// - Returns: `[KinesisVideoClientTypes.MappedResourceConfigurationListItem]` extension PaginatorSequence where Input == DescribeMappedResourceConfigurationInput, Output == DescribeMappedResourceConfigurationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMappedResourceConfigurationPaginated` + /// to access the nested member `[KinesisVideoClientTypes.MappedResourceConfigurationListItem]` + /// - Returns: `[KinesisVideoClientTypes.MappedResourceConfigurationListItem]` public func mappedResourceConfigurationList() async throws -> [KinesisVideoClientTypes.MappedResourceConfigurationListItem] { return try await self.asyncCompactMap { item in item.mappedResourceConfigurationList } } } - -/// Paginate over `[ListSignalingChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSignalingChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSignalingChannelsOutputResponse` extension KinesisVideoClient { + /// Paginate over `[ListSignalingChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSignalingChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSignalingChannelsOutputResponse` public func listSignalingChannelsPaginated(input: ListSignalingChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSignalingChannelsInput.nextToken, outputKey: \ListSignalingChannelsOutputResponse.nextToken, paginationFunction: self.listSignalingChannels(input:)) } @@ -59,24 +57,23 @@ extension ListSignalingChannelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSignalingChannelsPaginated` -/// to access the nested member `[KinesisVideoClientTypes.ChannelInfo]` -/// - Returns: `[KinesisVideoClientTypes.ChannelInfo]` extension PaginatorSequence where Input == ListSignalingChannelsInput, Output == ListSignalingChannelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSignalingChannelsPaginated` + /// to access the nested member `[KinesisVideoClientTypes.ChannelInfo]` + /// - Returns: `[KinesisVideoClientTypes.ChannelInfo]` public func channelInfoList() async throws -> [KinesisVideoClientTypes.ChannelInfo] { return try await self.asyncCompactMap { item in item.channelInfoList } } } - -/// Paginate over `[ListStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` extension KinesisVideoClient { + /// Paginate over `[ListStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamsOutputResponse` public func listStreamsPaginated(input: ListStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamsInput.nextToken, outputKey: \ListStreamsOutputResponse.nextToken, paginationFunction: self.listStreams(input:)) } @@ -91,10 +88,10 @@ extension ListStreamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStreamsPaginated` -/// to access the nested member `[KinesisVideoClientTypes.StreamInfo]` -/// - Returns: `[KinesisVideoClientTypes.StreamInfo]` extension PaginatorSequence where Input == ListStreamsInput, Output == ListStreamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStreamsPaginated` + /// to access the nested member `[KinesisVideoClientTypes.StreamInfo]` + /// - Returns: `[KinesisVideoClientTypes.StreamInfo]` public func streamInfoList() async throws -> [KinesisVideoClientTypes.StreamInfo] { return try await self.asyncCompactMap { item in item.streamInfoList } } diff --git a/Sources/Services/AWSLakeFormation/Paginators.swift b/Sources/Services/AWSLakeFormation/Paginators.swift index c5d5b1e51e0..015212204ac 100644 --- a/Sources/Services/AWSLakeFormation/Paginators.swift +++ b/Sources/Services/AWSLakeFormation/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetEffectivePermissionsForPathOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEffectivePermissionsForPathInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEffectivePermissionsForPathOutputResponse` extension LakeFormationClient { + /// Paginate over `[GetEffectivePermissionsForPathOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEffectivePermissionsForPathInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEffectivePermissionsForPathOutputResponse` public func getEffectivePermissionsForPathPaginated(input: GetEffectivePermissionsForPathInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEffectivePermissionsForPathInput.nextToken, outputKey: \GetEffectivePermissionsForPathOutputResponse.nextToken, paginationFunction: self.getEffectivePermissionsForPath(input:)) } @@ -26,16 +25,15 @@ extension GetEffectivePermissionsForPathInput: ClientRuntime.PaginateToken { resourceArn: self.resourceArn )} } - -/// Paginate over `[GetTableObjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTableObjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTableObjectsOutputResponse` extension LakeFormationClient { + /// Paginate over `[GetTableObjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTableObjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTableObjectsOutputResponse` public func getTableObjectsPaginated(input: GetTableObjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTableObjectsInput.nextToken, outputKey: \GetTableObjectsOutputResponse.nextToken, paginationFunction: self.getTableObjects(input:)) } @@ -54,16 +52,15 @@ extension GetTableObjectsInput: ClientRuntime.PaginateToken { transactionId: self.transactionId )} } - -/// Paginate over `[GetWorkUnitsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetWorkUnitsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetWorkUnitsOutputResponse` extension LakeFormationClient { + /// Paginate over `[GetWorkUnitsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetWorkUnitsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetWorkUnitsOutputResponse` public func getWorkUnitsPaginated(input: GetWorkUnitsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetWorkUnitsInput.nextToken, outputKey: \GetWorkUnitsOutputResponse.nextToken, paginationFunction: self.getWorkUnits(input:)) } @@ -78,24 +75,23 @@ extension GetWorkUnitsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getWorkUnitsPaginated` -/// to access the nested member `[LakeFormationClientTypes.WorkUnitRange]` -/// - Returns: `[LakeFormationClientTypes.WorkUnitRange]` extension PaginatorSequence where Input == GetWorkUnitsInput, Output == GetWorkUnitsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getWorkUnitsPaginated` + /// to access the nested member `[LakeFormationClientTypes.WorkUnitRange]` + /// - Returns: `[LakeFormationClientTypes.WorkUnitRange]` public func workUnitRanges() async throws -> [LakeFormationClientTypes.WorkUnitRange] { return try await self.asyncCompactMap { item in item.workUnitRanges } } } - -/// Paginate over `[ListDataCellsFilterOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataCellsFilterInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataCellsFilterOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListDataCellsFilterOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataCellsFilterInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataCellsFilterOutputResponse` public func listDataCellsFilterPaginated(input: ListDataCellsFilterInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataCellsFilterInput.nextToken, outputKey: \ListDataCellsFilterOutputResponse.nextToken, paginationFunction: self.listDataCellsFilter(input:)) } @@ -110,24 +106,23 @@ extension ListDataCellsFilterInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataCellsFilterPaginated` -/// to access the nested member `[LakeFormationClientTypes.DataCellsFilter]` -/// - Returns: `[LakeFormationClientTypes.DataCellsFilter]` extension PaginatorSequence where Input == ListDataCellsFilterInput, Output == ListDataCellsFilterOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataCellsFilterPaginated` + /// to access the nested member `[LakeFormationClientTypes.DataCellsFilter]` + /// - Returns: `[LakeFormationClientTypes.DataCellsFilter]` public func dataCellsFilters() async throws -> [LakeFormationClientTypes.DataCellsFilter] { return try await self.asyncCompactMap { item in item.dataCellsFilters } } } - -/// Paginate over `[ListLFTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLFTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLFTagsOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListLFTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLFTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLFTagsOutputResponse` public func listLFTagsPaginated(input: ListLFTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLFTagsInput.nextToken, outputKey: \ListLFTagsOutputResponse.nextToken, paginationFunction: self.listLFTags(input:)) } @@ -143,24 +138,23 @@ extension ListLFTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLFTagsPaginated` -/// to access the nested member `[LakeFormationClientTypes.LFTagPair]` -/// - Returns: `[LakeFormationClientTypes.LFTagPair]` extension PaginatorSequence where Input == ListLFTagsInput, Output == ListLFTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLFTagsPaginated` + /// to access the nested member `[LakeFormationClientTypes.LFTagPair]` + /// - Returns: `[LakeFormationClientTypes.LFTagPair]` public func lfTags() async throws -> [LakeFormationClientTypes.LFTagPair] { return try await self.asyncCompactMap { item in item.lfTags } } } - -/// Paginate over `[ListPermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListPermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` public func listPermissionsPaginated(input: ListPermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionsInput.nextToken, outputKey: \ListPermissionsOutputResponse.nextToken, paginationFunction: self.listPermissions(input:)) } @@ -178,16 +172,15 @@ extension ListPermissionsInput: ClientRuntime.PaginateToken { resourceType: self.resourceType )} } - -/// Paginate over `[ListResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` public func listResourcesPaginated(input: ListResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesInput.nextToken, outputKey: \ListResourcesOutputResponse.nextToken, paginationFunction: self.listResources(input:)) } @@ -201,16 +194,15 @@ extension ListResourcesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTableStorageOptimizersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTableStorageOptimizersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTableStorageOptimizersOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListTableStorageOptimizersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTableStorageOptimizersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTableStorageOptimizersOutputResponse` public func listTableStorageOptimizersPaginated(input: ListTableStorageOptimizersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTableStorageOptimizersInput.nextToken, outputKey: \ListTableStorageOptimizersOutputResponse.nextToken, paginationFunction: self.listTableStorageOptimizers(input:)) } @@ -227,16 +219,15 @@ extension ListTableStorageOptimizersInput: ClientRuntime.PaginateToken { tableName: self.tableName )} } - -/// Paginate over `[ListTransactionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTransactionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTransactionsOutputResponse` extension LakeFormationClient { + /// Paginate over `[ListTransactionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTransactionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTransactionsOutputResponse` public func listTransactionsPaginated(input: ListTransactionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTransactionsInput.nextToken, outputKey: \ListTransactionsOutputResponse.nextToken, paginationFunction: self.listTransactions(input:)) } @@ -251,16 +242,15 @@ extension ListTransactionsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[SearchDatabasesByLFTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchDatabasesByLFTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchDatabasesByLFTagsOutputResponse` extension LakeFormationClient { + /// Paginate over `[SearchDatabasesByLFTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchDatabasesByLFTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchDatabasesByLFTagsOutputResponse` public func searchDatabasesByLFTagsPaginated(input: SearchDatabasesByLFTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchDatabasesByLFTagsInput.nextToken, outputKey: \SearchDatabasesByLFTagsOutputResponse.nextToken, paginationFunction: self.searchDatabasesByLFTags(input:)) } @@ -276,24 +266,23 @@ extension SearchDatabasesByLFTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchDatabasesByLFTagsPaginated` -/// to access the nested member `[LakeFormationClientTypes.TaggedDatabase]` -/// - Returns: `[LakeFormationClientTypes.TaggedDatabase]` extension PaginatorSequence where Input == SearchDatabasesByLFTagsInput, Output == SearchDatabasesByLFTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchDatabasesByLFTagsPaginated` + /// to access the nested member `[LakeFormationClientTypes.TaggedDatabase]` + /// - Returns: `[LakeFormationClientTypes.TaggedDatabase]` public func databaseList() async throws -> [LakeFormationClientTypes.TaggedDatabase] { return try await self.asyncCompactMap { item in item.databaseList } } } - -/// Paginate over `[SearchTablesByLFTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchTablesByLFTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchTablesByLFTagsOutputResponse` extension LakeFormationClient { + /// Paginate over `[SearchTablesByLFTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchTablesByLFTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchTablesByLFTagsOutputResponse` public func searchTablesByLFTagsPaginated(input: SearchTablesByLFTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchTablesByLFTagsInput.nextToken, outputKey: \SearchTablesByLFTagsOutputResponse.nextToken, paginationFunction: self.searchTablesByLFTags(input:)) } @@ -309,10 +298,10 @@ extension SearchTablesByLFTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchTablesByLFTagsPaginated` -/// to access the nested member `[LakeFormationClientTypes.TaggedTable]` -/// - Returns: `[LakeFormationClientTypes.TaggedTable]` extension PaginatorSequence where Input == SearchTablesByLFTagsInput, Output == SearchTablesByLFTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchTablesByLFTagsPaginated` + /// to access the nested member `[LakeFormationClientTypes.TaggedTable]` + /// - Returns: `[LakeFormationClientTypes.TaggedTable]` public func tableList() async throws -> [LakeFormationClientTypes.TaggedTable] { return try await self.asyncCompactMap { item in item.tableList } } diff --git a/Sources/Services/AWSLambda/EndpointResolver.swift b/Sources/Services/AWSLambda/EndpointResolver.swift index 143e9045824..1d955ca76f1 100644 --- a/Sources/Services/AWSLambda/EndpointResolver.swift +++ b/Sources/Services/AWSLambda/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://lambda.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSLambda/LambdaClient.swift b/Sources/Services/AWSLambda/LambdaClient.swift index 13aeb85c8cf..2f5cb6d8ef5 100644 --- a/Sources/Services/AWSLambda/LambdaClient.swift +++ b/Sources/Services/AWSLambda/LambdaClient.swift @@ -376,15 +376,15 @@ extension LambdaClient: LambdaClientProtocol { /// /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): /// - /// * BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry. + /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic. + /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. /// - /// * MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires + /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// - /// * MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. /// - /// * ParallelizationFactor - Process multiple batches from each shard concurrently. + /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// /// For information about which configuration parameters apply to each event source, see the following topics. @@ -2379,15 +2379,15 @@ extension LambdaClient: LambdaClientProtocol { /// /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): /// - /// * BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry. + /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic. + /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. /// - /// * MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires + /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// - /// * MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. /// - /// * ParallelizationFactor - Process multiple batches from each shard concurrently. + /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// /// For information about which configuration parameters apply to each event source, see the following topics. diff --git a/Sources/Services/AWSLambda/LambdaClientProtocol.swift b/Sources/Services/AWSLambda/LambdaClientProtocol.swift index a4c7853950b..14e0474a164 100644 --- a/Sources/Services/AWSLambda/LambdaClientProtocol.swift +++ b/Sources/Services/AWSLambda/LambdaClientProtocol.swift @@ -3,10 +3,7 @@ import AWSClientRuntime import ClientRuntime -/// Lambda Overview Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any type of application or backend service. For more information about the Lambda service, see [What is Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) in the Lambda Developer Guide. The Lambda API Reference provides information about each of the API methods, including details about the parameters in each API request and response. You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. For installation instructions, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). For a list of Region-specific endpoints that Lambda supports, see [Lambda endpoints and quotas ](https://docs.aws.amazon.com/general/latest/gr/lambda-service.html/) in the Amazon Web Services General Reference.. -/// -/// -/// When making the API calls, you will need to authenticate your request by providing a signature. Lambda supports signature version 4. For more information, see [Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the Amazon Web Services General Reference.. CA certificates Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate environment and do not manage your own computer, you might need to ask an administrator to assist with the update process. The following list shows minimum operating system and Java versions: +/// Lambda Overview Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any type of application or backend service. For more information about the Lambda service, see [What is Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) in the Lambda Developer Guide. The Lambda API Reference provides information about each of the API methods, including details about the parameters in each API request and response. You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. For installation instructions, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). For a list of Region-specific endpoints that Lambda supports, see [Lambda endpoints and quotas ](https://docs.aws.amazon.com/general/latest/gr/lambda-service.html/) in the Amazon Web Services General Reference.. When making the API calls, you will need to authenticate your request by providing a signature. Lambda supports signature version 4. For more information, see [Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the Amazon Web Services General Reference.. CA certificates Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate environment and do not manage your own computer, you might need to ask an administrator to assist with the update process. The following list shows minimum operating system and Java versions: /// /// * Microsoft Windows versions that have updates from January 2005 or later installed contain at least one of the required CAs in their trust list. /// @@ -53,15 +50,15 @@ public protocol LambdaClientProtocol { /// /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): /// - /// * BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry. + /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic. + /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. /// - /// * MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires + /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// - /// * MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. /// - /// * ParallelizationFactor - Process multiple batches from each shard concurrently. + /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// /// For information about which configuration parameters apply to each event source, see the following topics. @@ -202,15 +199,15 @@ public protocol LambdaClientProtocol { /// /// The following error handling options are available only for stream sources (DynamoDB and Kinesis): /// - /// * BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry. + /// * BisectBatchOnFunctionError – If the function returns an error, split the batch in two and retry. /// - /// * DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic. + /// * DestinationConfig – Send discarded records to an Amazon SQS queue or Amazon SNS topic. /// - /// * MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires + /// * MaximumRecordAgeInSeconds – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires /// - /// * MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. + /// * MaximumRetryAttempts – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires. /// - /// * ParallelizationFactor - Process multiple batches from each shard concurrently. + /// * ParallelizationFactor – Process multiple batches from each shard concurrently. /// /// /// For information about which configuration parameters apply to each event source, see the following topics. diff --git a/Sources/Services/AWSLambda/Paginators.swift b/Sources/Services/AWSLambda/Paginators.swift index 28cb1785cc6..6ba95c2fae3 100644 --- a/Sources/Services/AWSLambda/Paginators.swift +++ b/Sources/Services/AWSLambda/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` extension LambdaClient { + /// Paginate over `[ListAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` public func listAliasesPaginated(input: ListAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAliasesInput.marker, outputKey: \ListAliasesOutputResponse.nextMarker, paginationFunction: self.listAliases(input:)) } @@ -27,24 +26,23 @@ extension ListAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` -/// to access the nested member `[LambdaClientTypes.AliasConfiguration]` -/// - Returns: `[LambdaClientTypes.AliasConfiguration]` extension PaginatorSequence where Input == ListAliasesInput, Output == ListAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` + /// to access the nested member `[LambdaClientTypes.AliasConfiguration]` + /// - Returns: `[LambdaClientTypes.AliasConfiguration]` public func aliases() async throws -> [LambdaClientTypes.AliasConfiguration] { return try await self.asyncCompactMap { item in item.aliases } } } - -/// Paginate over `[ListCodeSigningConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCodeSigningConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCodeSigningConfigsOutputResponse` extension LambdaClient { + /// Paginate over `[ListCodeSigningConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCodeSigningConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCodeSigningConfigsOutputResponse` public func listCodeSigningConfigsPaginated(input: ListCodeSigningConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCodeSigningConfigsInput.marker, outputKey: \ListCodeSigningConfigsOutputResponse.nextMarker, paginationFunction: self.listCodeSigningConfigs(input:)) } @@ -58,24 +56,23 @@ extension ListCodeSigningConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCodeSigningConfigsPaginated` -/// to access the nested member `[LambdaClientTypes.CodeSigningConfig]` -/// - Returns: `[LambdaClientTypes.CodeSigningConfig]` extension PaginatorSequence where Input == ListCodeSigningConfigsInput, Output == ListCodeSigningConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCodeSigningConfigsPaginated` + /// to access the nested member `[LambdaClientTypes.CodeSigningConfig]` + /// - Returns: `[LambdaClientTypes.CodeSigningConfig]` public func codeSigningConfigs() async throws -> [LambdaClientTypes.CodeSigningConfig] { return try await self.asyncCompactMap { item in item.codeSigningConfigs } } } - -/// Paginate over `[ListEventSourceMappingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventSourceMappingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventSourceMappingsOutputResponse` extension LambdaClient { + /// Paginate over `[ListEventSourceMappingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventSourceMappingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventSourceMappingsOutputResponse` public func listEventSourceMappingsPaginated(input: ListEventSourceMappingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventSourceMappingsInput.marker, outputKey: \ListEventSourceMappingsOutputResponse.nextMarker, paginationFunction: self.listEventSourceMappings(input:)) } @@ -91,24 +88,23 @@ extension ListEventSourceMappingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEventSourceMappingsPaginated` -/// to access the nested member `[LambdaClientTypes.EventSourceMappingConfiguration]` -/// - Returns: `[LambdaClientTypes.EventSourceMappingConfiguration]` extension PaginatorSequence where Input == ListEventSourceMappingsInput, Output == ListEventSourceMappingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEventSourceMappingsPaginated` + /// to access the nested member `[LambdaClientTypes.EventSourceMappingConfiguration]` + /// - Returns: `[LambdaClientTypes.EventSourceMappingConfiguration]` public func eventSourceMappings() async throws -> [LambdaClientTypes.EventSourceMappingConfiguration] { return try await self.asyncCompactMap { item in item.eventSourceMappings } } } - -/// Paginate over `[ListFunctionEventInvokeConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFunctionEventInvokeConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFunctionEventInvokeConfigsOutputResponse` extension LambdaClient { + /// Paginate over `[ListFunctionEventInvokeConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFunctionEventInvokeConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFunctionEventInvokeConfigsOutputResponse` public func listFunctionEventInvokeConfigsPaginated(input: ListFunctionEventInvokeConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFunctionEventInvokeConfigsInput.marker, outputKey: \ListFunctionEventInvokeConfigsOutputResponse.nextMarker, paginationFunction: self.listFunctionEventInvokeConfigs(input:)) } @@ -123,24 +119,23 @@ extension ListFunctionEventInvokeConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFunctionEventInvokeConfigsPaginated` -/// to access the nested member `[LambdaClientTypes.FunctionEventInvokeConfig]` -/// - Returns: `[LambdaClientTypes.FunctionEventInvokeConfig]` extension PaginatorSequence where Input == ListFunctionEventInvokeConfigsInput, Output == ListFunctionEventInvokeConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFunctionEventInvokeConfigsPaginated` + /// to access the nested member `[LambdaClientTypes.FunctionEventInvokeConfig]` + /// - Returns: `[LambdaClientTypes.FunctionEventInvokeConfig]` public func functionEventInvokeConfigs() async throws -> [LambdaClientTypes.FunctionEventInvokeConfig] { return try await self.asyncCompactMap { item in item.functionEventInvokeConfigs } } } - -/// Paginate over `[ListFunctionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFunctionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFunctionsOutputResponse` extension LambdaClient { + /// Paginate over `[ListFunctionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFunctionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFunctionsOutputResponse` public func listFunctionsPaginated(input: ListFunctionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFunctionsInput.marker, outputKey: \ListFunctionsOutputResponse.nextMarker, paginationFunction: self.listFunctions(input:)) } @@ -156,24 +151,23 @@ extension ListFunctionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFunctionsPaginated` -/// to access the nested member `[LambdaClientTypes.FunctionConfiguration]` -/// - Returns: `[LambdaClientTypes.FunctionConfiguration]` extension PaginatorSequence where Input == ListFunctionsInput, Output == ListFunctionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFunctionsPaginated` + /// to access the nested member `[LambdaClientTypes.FunctionConfiguration]` + /// - Returns: `[LambdaClientTypes.FunctionConfiguration]` public func functions() async throws -> [LambdaClientTypes.FunctionConfiguration] { return try await self.asyncCompactMap { item in item.functions } } } - -/// Paginate over `[ListFunctionsByCodeSigningConfigOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFunctionsByCodeSigningConfigInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFunctionsByCodeSigningConfigOutputResponse` extension LambdaClient { + /// Paginate over `[ListFunctionsByCodeSigningConfigOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFunctionsByCodeSigningConfigInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFunctionsByCodeSigningConfigOutputResponse` public func listFunctionsByCodeSigningConfigPaginated(input: ListFunctionsByCodeSigningConfigInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFunctionsByCodeSigningConfigInput.marker, outputKey: \ListFunctionsByCodeSigningConfigOutputResponse.nextMarker, paginationFunction: self.listFunctionsByCodeSigningConfig(input:)) } @@ -188,24 +182,23 @@ extension ListFunctionsByCodeSigningConfigInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFunctionsByCodeSigningConfigPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFunctionsByCodeSigningConfigInput, Output == ListFunctionsByCodeSigningConfigOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFunctionsByCodeSigningConfigPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func functionArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.functionArns } } } - -/// Paginate over `[ListFunctionUrlConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFunctionUrlConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFunctionUrlConfigsOutputResponse` extension LambdaClient { + /// Paginate over `[ListFunctionUrlConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFunctionUrlConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFunctionUrlConfigsOutputResponse` public func listFunctionUrlConfigsPaginated(input: ListFunctionUrlConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFunctionUrlConfigsInput.marker, outputKey: \ListFunctionUrlConfigsOutputResponse.nextMarker, paginationFunction: self.listFunctionUrlConfigs(input:)) } @@ -220,24 +213,23 @@ extension ListFunctionUrlConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFunctionUrlConfigsPaginated` -/// to access the nested member `[LambdaClientTypes.FunctionUrlConfig]` -/// - Returns: `[LambdaClientTypes.FunctionUrlConfig]` extension PaginatorSequence where Input == ListFunctionUrlConfigsInput, Output == ListFunctionUrlConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFunctionUrlConfigsPaginated` + /// to access the nested member `[LambdaClientTypes.FunctionUrlConfig]` + /// - Returns: `[LambdaClientTypes.FunctionUrlConfig]` public func functionUrlConfigs() async throws -> [LambdaClientTypes.FunctionUrlConfig] { return try await self.asyncCompactMap { item in item.functionUrlConfigs } } } - -/// Paginate over `[ListLayersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLayersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLayersOutputResponse` extension LambdaClient { + /// Paginate over `[ListLayersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLayersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLayersOutputResponse` public func listLayersPaginated(input: ListLayersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLayersInput.marker, outputKey: \ListLayersOutputResponse.nextMarker, paginationFunction: self.listLayers(input:)) } @@ -253,24 +245,23 @@ extension ListLayersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLayersPaginated` -/// to access the nested member `[LambdaClientTypes.LayersListItem]` -/// - Returns: `[LambdaClientTypes.LayersListItem]` extension PaginatorSequence where Input == ListLayersInput, Output == ListLayersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLayersPaginated` + /// to access the nested member `[LambdaClientTypes.LayersListItem]` + /// - Returns: `[LambdaClientTypes.LayersListItem]` public func layers() async throws -> [LambdaClientTypes.LayersListItem] { return try await self.asyncCompactMap { item in item.layers } } } - -/// Paginate over `[ListLayerVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLayerVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLayerVersionsOutputResponse` extension LambdaClient { + /// Paginate over `[ListLayerVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLayerVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLayerVersionsOutputResponse` public func listLayerVersionsPaginated(input: ListLayerVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLayerVersionsInput.marker, outputKey: \ListLayerVersionsOutputResponse.nextMarker, paginationFunction: self.listLayerVersions(input:)) } @@ -287,24 +278,23 @@ extension ListLayerVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLayerVersionsPaginated` -/// to access the nested member `[LambdaClientTypes.LayerVersionsListItem]` -/// - Returns: `[LambdaClientTypes.LayerVersionsListItem]` extension PaginatorSequence where Input == ListLayerVersionsInput, Output == ListLayerVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLayerVersionsPaginated` + /// to access the nested member `[LambdaClientTypes.LayerVersionsListItem]` + /// - Returns: `[LambdaClientTypes.LayerVersionsListItem]` public func layerVersions() async throws -> [LambdaClientTypes.LayerVersionsListItem] { return try await self.asyncCompactMap { item in item.layerVersions } } } - -/// Paginate over `[ListProvisionedConcurrencyConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProvisionedConcurrencyConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProvisionedConcurrencyConfigsOutputResponse` extension LambdaClient { + /// Paginate over `[ListProvisionedConcurrencyConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProvisionedConcurrencyConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProvisionedConcurrencyConfigsOutputResponse` public func listProvisionedConcurrencyConfigsPaginated(input: ListProvisionedConcurrencyConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProvisionedConcurrencyConfigsInput.marker, outputKey: \ListProvisionedConcurrencyConfigsOutputResponse.nextMarker, paginationFunction: self.listProvisionedConcurrencyConfigs(input:)) } @@ -319,24 +309,23 @@ extension ListProvisionedConcurrencyConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProvisionedConcurrencyConfigsPaginated` -/// to access the nested member `[LambdaClientTypes.ProvisionedConcurrencyConfigListItem]` -/// - Returns: `[LambdaClientTypes.ProvisionedConcurrencyConfigListItem]` extension PaginatorSequence where Input == ListProvisionedConcurrencyConfigsInput, Output == ListProvisionedConcurrencyConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProvisionedConcurrencyConfigsPaginated` + /// to access the nested member `[LambdaClientTypes.ProvisionedConcurrencyConfigListItem]` + /// - Returns: `[LambdaClientTypes.ProvisionedConcurrencyConfigListItem]` public func provisionedConcurrencyConfigs() async throws -> [LambdaClientTypes.ProvisionedConcurrencyConfigListItem] { return try await self.asyncCompactMap { item in item.provisionedConcurrencyConfigs } } } - -/// Paginate over `[ListVersionsByFunctionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVersionsByFunctionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVersionsByFunctionOutputResponse` extension LambdaClient { + /// Paginate over `[ListVersionsByFunctionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVersionsByFunctionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVersionsByFunctionOutputResponse` public func listVersionsByFunctionPaginated(input: ListVersionsByFunctionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVersionsByFunctionInput.marker, outputKey: \ListVersionsByFunctionOutputResponse.nextMarker, paginationFunction: self.listVersionsByFunction(input:)) } @@ -351,10 +340,10 @@ extension ListVersionsByFunctionInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listVersionsByFunctionPaginated` -/// to access the nested member `[LambdaClientTypes.FunctionConfiguration]` -/// - Returns: `[LambdaClientTypes.FunctionConfiguration]` extension PaginatorSequence where Input == ListVersionsByFunctionInput, Output == ListVersionsByFunctionOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listVersionsByFunctionPaginated` + /// to access the nested member `[LambdaClientTypes.FunctionConfiguration]` + /// - Returns: `[LambdaClientTypes.FunctionConfiguration]` public func versions() async throws -> [LambdaClientTypes.FunctionConfiguration] { return try await self.asyncCompactMap { item in item.versions } } diff --git a/Sources/Services/AWSLambda/models/Models.swift b/Sources/Services/AWSLambda/models/Models.swift index 49d582a5a9d..e25bd14c02f 100644 --- a/Sources/Services/AWSLambda/models/Models.swift +++ b/Sources/Services/AWSLambda/models/Models.swift @@ -1711,6 +1711,7 @@ extension CreateEventSourceMappingInput: Swift.Encodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -1770,6 +1771,9 @@ extension CreateEventSourceMappingInput: Swift.Encodable { try queuesContainer.encode(queue0) } } + if let scalingConfig = self.scalingConfig { + try encodeContainer.encode(scalingConfig, forKey: .scalingConfig) + } if let selfManagedEventSource = self.selfManagedEventSource { try encodeContainer.encode(selfManagedEventSource, forKey: .selfManagedEventSource) } @@ -1811,17 +1815,17 @@ public struct CreateEventSourceMappingInput: Swift.Equatable { public var amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? /// The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). /// - /// * Amazon Kinesis - Default 100. Max 10,000. + /// * Amazon Kinesis – Default 100. Max 10,000. /// - /// * Amazon DynamoDB Streams - Default 100. Max 10,000. + /// * Amazon DynamoDB Streams – Default 100. Max 10,000. /// - /// * Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. + /// * Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. /// - /// * Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000. + /// * Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000. /// - /// * Self-managed Apache Kafka - Default 100. Max 10,000. + /// * Self-managed Apache Kafka – Default 100. Max 10,000. /// - /// * Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000. + /// * Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000. public var batchSize: Swift.Int? /// (Streams only) If the function returns an error, split the batch in two and retry. public var bisectBatchOnFunctionError: Swift.Bool? @@ -1831,27 +1835,27 @@ public struct CreateEventSourceMappingInput: Swift.Equatable { public var enabled: Swift.Bool? /// The Amazon Resource Name (ARN) of the event source. /// - /// * Amazon Kinesis - The ARN of the data stream or a stream consumer. + /// * Amazon Kinesis – The ARN of the data stream or a stream consumer. /// - /// * Amazon DynamoDB Streams - The ARN of the stream. + /// * Amazon DynamoDB Streams – The ARN of the stream. /// - /// * Amazon Simple Queue Service - The ARN of the queue. + /// * Amazon Simple Queue Service – The ARN of the queue. /// - /// * Amazon Managed Streaming for Apache Kafka - The ARN of the cluster. + /// * Amazon Managed Streaming for Apache Kafka – The ARN of the cluster. /// - /// * Amazon MQ - The ARN of the broker. + /// * Amazon MQ – The ARN of the broker. public var eventSourceArn: Swift.String? /// An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). public var filterCriteria: LambdaClientTypes.FilterCriteria? /// The name of the Lambda function. Name formats /// - /// * Function name - MyFunction. + /// * Function name – MyFunction. /// - /// * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction. + /// * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction. /// - /// * Version or Alias ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. + /// * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. /// - /// * Partial ARN - 123456789012:function:MyFunction. + /// * Partial ARN – 123456789012:function:MyFunction. /// /// /// The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. @@ -1869,6 +1873,8 @@ public struct CreateEventSourceMappingInput: Swift.Equatable { public var parallelizationFactor: Swift.Int? /// (MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster to receive records from. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -1899,6 +1905,7 @@ public struct CreateEventSourceMappingInput: Swift.Equatable { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -1922,6 +1929,7 @@ public struct CreateEventSourceMappingInput: Swift.Equatable { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -1954,6 +1962,7 @@ struct CreateEventSourceMappingInputBody: Swift.Equatable { let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? let amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? let selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension CreateEventSourceMappingInputBody: Swift.Decodable { @@ -1972,6 +1981,7 @@ extension CreateEventSourceMappingInputBody: Swift.Decodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -2061,6 +2071,8 @@ extension CreateEventSourceMappingInputBody: Swift.Decodable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -2115,6 +2127,7 @@ extension CreateEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = output.maximumRetryAttempts self.parallelizationFactor = output.parallelizationFactor self.queues = output.queues + self.scalingConfig = output.scalingConfig self.selfManagedEventSource = output.selfManagedEventSource self.selfManagedKafkaEventSourceConfig = output.selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = output.sourceAccessConfigurations @@ -2141,6 +2154,7 @@ extension CreateEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = nil self.parallelizationFactor = nil self.queues = nil + self.scalingConfig = nil self.selfManagedEventSource = nil self.selfManagedKafkaEventSourceConfig = nil self.sourceAccessConfigurations = nil @@ -2187,6 +2201,8 @@ public struct CreateEventSourceMappingOutputResponse: Swift.Equatable { public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster for your event source. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -2224,6 +2240,7 @@ public struct CreateEventSourceMappingOutputResponse: Swift.Equatable { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -2251,6 +2268,7 @@ public struct CreateEventSourceMappingOutputResponse: Swift.Equatable { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -2290,6 +2308,7 @@ struct CreateEventSourceMappingOutputResponseBody: Swift.Equatable { let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? let amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? let selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension CreateEventSourceMappingOutputResponseBody: Swift.Decodable { @@ -2309,6 +2328,7 @@ extension CreateEventSourceMappingOutputResponseBody: Swift.Decodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -2409,6 +2429,8 @@ extension CreateEventSourceMappingOutputResponseBody: Swift.Decodable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -2954,7 +2976,7 @@ public struct CreateFunctionOutputResponse: Swift.Equatable { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? @@ -3701,6 +3723,7 @@ extension DeleteEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = output.maximumRetryAttempts self.parallelizationFactor = output.parallelizationFactor self.queues = output.queues + self.scalingConfig = output.scalingConfig self.selfManagedEventSource = output.selfManagedEventSource self.selfManagedKafkaEventSourceConfig = output.selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = output.sourceAccessConfigurations @@ -3727,6 +3750,7 @@ extension DeleteEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = nil self.parallelizationFactor = nil self.queues = nil + self.scalingConfig = nil self.selfManagedEventSource = nil self.selfManagedKafkaEventSourceConfig = nil self.sourceAccessConfigurations = nil @@ -3773,6 +3797,8 @@ public struct DeleteEventSourceMappingOutputResponse: Swift.Equatable { public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster for your event source. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -3810,6 +3836,7 @@ public struct DeleteEventSourceMappingOutputResponse: Swift.Equatable { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -3837,6 +3864,7 @@ public struct DeleteEventSourceMappingOutputResponse: Swift.Equatable { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -3876,6 +3904,7 @@ struct DeleteEventSourceMappingOutputResponseBody: Swift.Equatable { let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? let amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? let selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension DeleteEventSourceMappingOutputResponseBody: Swift.Decodable { @@ -3895,6 +3924,7 @@ extension DeleteEventSourceMappingOutputResponseBody: Swift.Decodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -3995,6 +4025,8 @@ extension DeleteEventSourceMappingOutputResponseBody: Swift.Decodable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -5407,6 +5439,7 @@ extension LambdaClientTypes.EventSourceMappingConfiguration: Swift.Codable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -5472,6 +5505,9 @@ extension LambdaClientTypes.EventSourceMappingConfiguration: Swift.Codable { try queuesContainer.encode(queue0) } } + if let scalingConfig = self.scalingConfig { + try encodeContainer.encode(scalingConfig, forKey: .scalingConfig) + } if let selfManagedEventSource = self.selfManagedEventSource { try encodeContainer.encode(selfManagedEventSource, forKey: .selfManagedEventSource) } @@ -5598,6 +5634,8 @@ extension LambdaClientTypes.EventSourceMappingConfiguration: Swift.Codable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -5634,6 +5672,8 @@ extension LambdaClientTypes { public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster for your event source. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -5671,6 +5711,7 @@ extension LambdaClientTypes { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -5698,6 +5739,7 @@ extension LambdaClientTypes { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -6330,7 +6372,7 @@ extension LambdaClientTypes { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? @@ -7127,6 +7169,7 @@ extension GetEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBinding self.maximumRetryAttempts = output.maximumRetryAttempts self.parallelizationFactor = output.parallelizationFactor self.queues = output.queues + self.scalingConfig = output.scalingConfig self.selfManagedEventSource = output.selfManagedEventSource self.selfManagedKafkaEventSourceConfig = output.selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = output.sourceAccessConfigurations @@ -7153,6 +7196,7 @@ extension GetEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBinding self.maximumRetryAttempts = nil self.parallelizationFactor = nil self.queues = nil + self.scalingConfig = nil self.selfManagedEventSource = nil self.selfManagedKafkaEventSourceConfig = nil self.sourceAccessConfigurations = nil @@ -7199,6 +7243,8 @@ public struct GetEventSourceMappingOutputResponse: Swift.Equatable { public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster for your event source. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -7236,6 +7282,7 @@ public struct GetEventSourceMappingOutputResponse: Swift.Equatable { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -7263,6 +7310,7 @@ public struct GetEventSourceMappingOutputResponse: Swift.Equatable { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -7302,6 +7350,7 @@ struct GetEventSourceMappingOutputResponseBody: Swift.Equatable { let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? let amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? let selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension GetEventSourceMappingOutputResponseBody: Swift.Decodable { @@ -7321,6 +7370,7 @@ extension GetEventSourceMappingOutputResponseBody: Swift.Decodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -7421,6 +7471,8 @@ extension GetEventSourceMappingOutputResponseBody: Swift.Decodable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -7881,7 +7933,7 @@ public struct GetFunctionConfigurationOutputResponse: Swift.Equatable { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? @@ -11708,25 +11760,25 @@ extension ListEventSourceMappingsInput: ClientRuntime.URLPathProvider { public struct ListEventSourceMappingsInput: Swift.Equatable { /// The Amazon Resource Name (ARN) of the event source. /// - /// * Amazon Kinesis - The ARN of the data stream or a stream consumer. + /// * Amazon Kinesis – The ARN of the data stream or a stream consumer. /// - /// * Amazon DynamoDB Streams - The ARN of the stream. + /// * Amazon DynamoDB Streams – The ARN of the stream. /// - /// * Amazon Simple Queue Service - The ARN of the queue. + /// * Amazon Simple Queue Service – The ARN of the queue. /// - /// * Amazon Managed Streaming for Apache Kafka - The ARN of the cluster. + /// * Amazon Managed Streaming for Apache Kafka – The ARN of the cluster. /// - /// * Amazon MQ - The ARN of the broker. + /// * Amazon MQ – The ARN of the broker. public var eventSourceArn: Swift.String? /// The name of the Lambda function. Name formats /// - /// * Function name - MyFunction. + /// * Function name – MyFunction. /// - /// * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction. + /// * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction. /// - /// * Version or Alias ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. + /// * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. /// - /// * Partial ARN - 123456789012:function:MyFunction. + /// * Partial ARN – 123456789012:function:MyFunction. /// /// /// The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. @@ -14180,7 +14232,7 @@ public struct PublishVersionOutputResponse: Swift.Equatable { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? @@ -15812,6 +15864,41 @@ extension LambdaClientTypes { } } +extension LambdaClientTypes.ScalingConfig: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case maximumConcurrency = "MaximumConcurrency" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let maximumConcurrency = self.maximumConcurrency { + try encodeContainer.encode(maximumConcurrency, forKey: .maximumConcurrency) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let maximumConcurrencyDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maximumConcurrency) + maximumConcurrency = maximumConcurrencyDecoded + } +} + +extension LambdaClientTypes { + /// (Amazon SQS only) The scaling configuration for the event source. To remove the configuration, pass an empty value. + public struct ScalingConfig: Swift.Equatable { + /// Limits the number of concurrent instances that the Amazon SQS event source can invoke. + public var maximumConcurrency: Swift.Int? + + public init ( + maximumConcurrency: Swift.Int? = nil + ) + { + self.maximumConcurrency = maximumConcurrency + } + } + +} + extension LambdaClientTypes.SelfManagedEventSource: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case endpoints = "Endpoints" @@ -15985,7 +16072,7 @@ extension LambdaClientTypes.SnapStart: Swift.Codable { } extension LambdaClientTypes { - /// The function's SnapStart setting. Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// The function's Lambda SnapStart setting. Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. SnapStart is supported with the java11 runtime. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public struct SnapStart: Swift.Equatable { /// Set to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. public var applyOn: LambdaClientTypes.SnapStartApplyOn? @@ -16322,23 +16409,23 @@ extension LambdaClientTypes { public struct SourceAccessConfiguration: Swift.Equatable { /// The type of authentication protocol, VPC components, or virtual host for your event source. For example: "Type":"SASL_SCRAM_512_AUTH". /// - /// * BASIC_AUTH - (Amazon MQ) The Secrets Manager secret that stores your broker credentials. + /// * BASIC_AUTH – (Amazon MQ) The Secrets Manager secret that stores your broker credentials. /// - /// * BASIC_AUTH - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. + /// * BASIC_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. /// - /// * VPC_SUBNET - (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. + /// * VPC_SUBNET – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. /// - /// * VPC_SECURITY_GROUP - (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. + /// * VPC_SECURITY_GROUP – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. /// - /// * SASL_SCRAM_256_AUTH - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. + /// * SASL_SCRAM_256_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. /// - /// * SASL_SCRAM_512_AUTH - (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. + /// * SASL_SCRAM_512_AUTH – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. /// - /// * VIRTUAL_HOST - (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. + /// * VIRTUAL_HOST –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. /// - /// * CLIENT_CERTIFICATE_TLS_AUTH - (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. + /// * CLIENT_CERTIFICATE_TLS_AUTH – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. /// - /// * SERVER_ROOT_CA_CERTIFICATE - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. + /// * SERVER_ROOT_CA_CERTIFICATE – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. public var type: LambdaClientTypes.SourceAccessType? /// The value for your chosen configuration in Type. For example: "URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName". public var uri: Swift.String? @@ -17481,6 +17568,7 @@ extension UpdateEventSourceMappingInput: Swift.Encodable { case maximumRecordAgeInSeconds = "MaximumRecordAgeInSeconds" case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" + case scalingConfig = "ScalingConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" case tumblingWindowInSeconds = "TumblingWindowInSeconds" } @@ -17523,6 +17611,9 @@ extension UpdateEventSourceMappingInput: Swift.Encodable { if let parallelizationFactor = self.parallelizationFactor { try encodeContainer.encode(parallelizationFactor, forKey: .parallelizationFactor) } + if let scalingConfig = self.scalingConfig { + try encodeContainer.encode(scalingConfig, forKey: .scalingConfig) + } if let sourceAccessConfigurations = sourceAccessConfigurations { var sourceAccessConfigurationsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .sourceAccessConfigurations) for sourceaccessconfiguration0 in sourceAccessConfigurations { @@ -17547,17 +17638,17 @@ extension UpdateEventSourceMappingInput: ClientRuntime.URLPathProvider { public struct UpdateEventSourceMappingInput: Swift.Equatable { /// The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). /// - /// * Amazon Kinesis - Default 100. Max 10,000. + /// * Amazon Kinesis – Default 100. Max 10,000. /// - /// * Amazon DynamoDB Streams - Default 100. Max 10,000. + /// * Amazon DynamoDB Streams – Default 100. Max 10,000. /// - /// * Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. + /// * Amazon Simple Queue Service – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. /// - /// * Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000. + /// * Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000. /// - /// * Self-managed Apache Kafka - Default 100. Max 10,000. + /// * Self-managed Apache Kafka – Default 100. Max 10,000. /// - /// * Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000. + /// * Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000. public var batchSize: Swift.Int? /// (Streams only) If the function returns an error, split the batch in two and retry. public var bisectBatchOnFunctionError: Swift.Bool? @@ -17569,13 +17660,13 @@ public struct UpdateEventSourceMappingInput: Swift.Equatable { public var filterCriteria: LambdaClientTypes.FilterCriteria? /// The name of the Lambda function. Name formats /// - /// * Function name - MyFunction. + /// * Function name – MyFunction. /// - /// * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction. + /// * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction. /// - /// * Version or Alias ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. + /// * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD. /// - /// * Partial ARN - 123456789012:function:MyFunction. + /// * Partial ARN – 123456789012:function:MyFunction. /// /// /// The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. @@ -17590,6 +17681,8 @@ public struct UpdateEventSourceMappingInput: Swift.Equatable { public var maximumRetryAttempts: Swift.Int? /// (Streams only) The number of batches to process from each shard concurrently. public var parallelizationFactor: Swift.Int? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// An array of authentication protocols or VPC components required to secure your event source. public var sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? /// (Streams only) The duration in seconds of a processing window. The range is between 1 second and 900 seconds. @@ -17610,6 +17703,7 @@ public struct UpdateEventSourceMappingInput: Swift.Equatable { maximumRecordAgeInSeconds: Swift.Int? = nil, maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, tumblingWindowInSeconds: Swift.Int? = nil, uuid: Swift.String? = nil @@ -17626,6 +17720,7 @@ public struct UpdateEventSourceMappingInput: Swift.Equatable { self.maximumRecordAgeInSeconds = maximumRecordAgeInSeconds self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor + self.scalingConfig = scalingConfig self.sourceAccessConfigurations = sourceAccessConfigurations self.tumblingWindowInSeconds = tumblingWindowInSeconds self.uuid = uuid @@ -17646,6 +17741,7 @@ struct UpdateEventSourceMappingInputBody: Swift.Equatable { let sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? let tumblingWindowInSeconds: Swift.Int? let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension UpdateEventSourceMappingInputBody: Swift.Decodable { @@ -17661,6 +17757,7 @@ extension UpdateEventSourceMappingInputBody: Swift.Decodable { case maximumRecordAgeInSeconds = "MaximumRecordAgeInSeconds" case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" + case scalingConfig = "ScalingConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" case tumblingWindowInSeconds = "TumblingWindowInSeconds" } @@ -17711,6 +17808,8 @@ extension UpdateEventSourceMappingInputBody: Swift.Decodable { } } functionResponseTypes = functionResponseTypesDecoded0 + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -17767,6 +17866,7 @@ extension UpdateEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = output.maximumRetryAttempts self.parallelizationFactor = output.parallelizationFactor self.queues = output.queues + self.scalingConfig = output.scalingConfig self.selfManagedEventSource = output.selfManagedEventSource self.selfManagedKafkaEventSourceConfig = output.selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = output.sourceAccessConfigurations @@ -17793,6 +17893,7 @@ extension UpdateEventSourceMappingOutputResponse: ClientRuntime.HttpResponseBind self.maximumRetryAttempts = nil self.parallelizationFactor = nil self.queues = nil + self.scalingConfig = nil self.selfManagedEventSource = nil self.selfManagedKafkaEventSourceConfig = nil self.sourceAccessConfigurations = nil @@ -17839,6 +17940,8 @@ public struct UpdateEventSourceMappingOutputResponse: Swift.Equatable { public var parallelizationFactor: Swift.Int? /// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume. public var queues: [Swift.String]? + /// (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency). + public var scalingConfig: LambdaClientTypes.ScalingConfig? /// The self-managed Apache Kafka cluster for your event source. public var selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? /// Specific configuration settings for a self-managed Apache Kafka event source. @@ -17876,6 +17979,7 @@ public struct UpdateEventSourceMappingOutputResponse: Swift.Equatable { maximumRetryAttempts: Swift.Int? = nil, parallelizationFactor: Swift.Int? = nil, queues: [Swift.String]? = nil, + scalingConfig: LambdaClientTypes.ScalingConfig? = nil, selfManagedEventSource: LambdaClientTypes.SelfManagedEventSource? = nil, selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? = nil, sourceAccessConfigurations: [LambdaClientTypes.SourceAccessConfiguration]? = nil, @@ -17903,6 +18007,7 @@ public struct UpdateEventSourceMappingOutputResponse: Swift.Equatable { self.maximumRetryAttempts = maximumRetryAttempts self.parallelizationFactor = parallelizationFactor self.queues = queues + self.scalingConfig = scalingConfig self.selfManagedEventSource = selfManagedEventSource self.selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfig self.sourceAccessConfigurations = sourceAccessConfigurations @@ -17942,6 +18047,7 @@ struct UpdateEventSourceMappingOutputResponseBody: Swift.Equatable { let functionResponseTypes: [LambdaClientTypes.FunctionResponseType]? let amazonManagedKafkaEventSourceConfig: LambdaClientTypes.AmazonManagedKafkaEventSourceConfig? let selfManagedKafkaEventSourceConfig: LambdaClientTypes.SelfManagedKafkaEventSourceConfig? + let scalingConfig: LambdaClientTypes.ScalingConfig? } extension UpdateEventSourceMappingOutputResponseBody: Swift.Decodable { @@ -17961,6 +18067,7 @@ extension UpdateEventSourceMappingOutputResponseBody: Swift.Decodable { case maximumRetryAttempts = "MaximumRetryAttempts" case parallelizationFactor = "ParallelizationFactor" case queues = "Queues" + case scalingConfig = "ScalingConfig" case selfManagedEventSource = "SelfManagedEventSource" case selfManagedKafkaEventSourceConfig = "SelfManagedKafkaEventSourceConfig" case sourceAccessConfigurations = "SourceAccessConfigurations" @@ -18061,6 +18168,8 @@ extension UpdateEventSourceMappingOutputResponseBody: Swift.Decodable { amazonManagedKafkaEventSourceConfig = amazonManagedKafkaEventSourceConfigDecoded let selfManagedKafkaEventSourceConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.SelfManagedKafkaEventSourceConfig.self, forKey: .selfManagedKafkaEventSourceConfig) selfManagedKafkaEventSourceConfig = selfManagedKafkaEventSourceConfigDecoded + let scalingConfigDecoded = try containerValues.decodeIfPresent(LambdaClientTypes.ScalingConfig.self, forKey: .scalingConfig) + scalingConfig = scalingConfigDecoded } } @@ -18414,7 +18523,7 @@ public struct UpdateFunctionCodeOutputResponse: Swift.Equatable { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? @@ -19131,7 +19240,7 @@ public struct UpdateFunctionConfigurationOutputResponse: Swift.Equatable { public var signingJobArn: Swift.String? /// The ARN of the signing profile version. public var signingProfileVersionArn: Swift.String? - /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Reducing startup time with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). + /// Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html). public var snapStart: LambdaClientTypes.SnapStartResponse? /// The current state of the function. When the state is Inactive, you can reactivate the function by invoking it. public var state: LambdaClientTypes.State? diff --git a/Sources/Services/AWSLexModelBuildingService/Paginators.swift b/Sources/Services/AWSLexModelBuildingService/Paginators.swift index e3cb5162e2c..b1ffcd18740 100644 --- a/Sources/Services/AWSLexModelBuildingService/Paginators.swift +++ b/Sources/Services/AWSLexModelBuildingService/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetBotAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBotAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBotAliasesOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBotAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBotAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBotAliasesOutputResponse` public func getBotAliasesPaginated(input: GetBotAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBotAliasesInput.nextToken, outputKey: \GetBotAliasesOutputResponse.nextToken, paginationFunction: self.getBotAliases(input:)) } @@ -26,16 +25,15 @@ extension GetBotAliasesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBotChannelAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBotChannelAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBotChannelAssociationsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBotChannelAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBotChannelAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBotChannelAssociationsOutputResponse` public func getBotChannelAssociationsPaginated(input: GetBotChannelAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBotChannelAssociationsInput.nextToken, outputKey: \GetBotChannelAssociationsOutputResponse.nextToken, paginationFunction: self.getBotChannelAssociations(input:)) } @@ -51,16 +49,15 @@ extension GetBotChannelAssociationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBotsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBotsOutputResponse` public func getBotsPaginated(input: GetBotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBotsInput.nextToken, outputKey: \GetBotsOutputResponse.nextToken, paginationFunction: self.getBots(input:)) } @@ -74,16 +71,15 @@ extension GetBotsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBotVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBotVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBotVersionsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBotVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBotVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBotVersionsOutputResponse` public func getBotVersionsPaginated(input: GetBotVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBotVersionsInput.nextToken, outputKey: \GetBotVersionsOutputResponse.nextToken, paginationFunction: self.getBotVersions(input:)) } @@ -97,16 +93,15 @@ extension GetBotVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetBuiltinIntentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBuiltinIntentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBuiltinIntentsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBuiltinIntentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBuiltinIntentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBuiltinIntentsOutputResponse` public func getBuiltinIntentsPaginated(input: GetBuiltinIntentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBuiltinIntentsInput.nextToken, outputKey: \GetBuiltinIntentsOutputResponse.nextToken, paginationFunction: self.getBuiltinIntents(input:)) } @@ -121,16 +116,15 @@ extension GetBuiltinIntentsInput: ClientRuntime.PaginateToken { signatureContains: self.signatureContains )} } - -/// Paginate over `[GetBuiltinSlotTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetBuiltinSlotTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetBuiltinSlotTypesOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetBuiltinSlotTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetBuiltinSlotTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetBuiltinSlotTypesOutputResponse` public func getBuiltinSlotTypesPaginated(input: GetBuiltinSlotTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetBuiltinSlotTypesInput.nextToken, outputKey: \GetBuiltinSlotTypesOutputResponse.nextToken, paginationFunction: self.getBuiltinSlotTypes(input:)) } @@ -145,16 +139,15 @@ extension GetBuiltinSlotTypesInput: ClientRuntime.PaginateToken { signatureContains: self.signatureContains )} } - -/// Paginate over `[GetIntentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIntentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIntentsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetIntentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIntentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIntentsOutputResponse` public func getIntentsPaginated(input: GetIntentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIntentsInput.nextToken, outputKey: \GetIntentsOutputResponse.nextToken, paginationFunction: self.getIntents(input:)) } @@ -168,16 +161,15 @@ extension GetIntentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetIntentVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetIntentVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetIntentVersionsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetIntentVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetIntentVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetIntentVersionsOutputResponse` public func getIntentVersionsPaginated(input: GetIntentVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetIntentVersionsInput.nextToken, outputKey: \GetIntentVersionsOutputResponse.nextToken, paginationFunction: self.getIntentVersions(input:)) } @@ -191,16 +183,15 @@ extension GetIntentVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetMigrationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetMigrationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetMigrationsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetMigrationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetMigrationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetMigrationsOutputResponse` public func getMigrationsPaginated(input: GetMigrationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetMigrationsInput.nextToken, outputKey: \GetMigrationsOutputResponse.nextToken, paginationFunction: self.getMigrations(input:)) } @@ -217,16 +208,15 @@ extension GetMigrationsInput: ClientRuntime.PaginateToken { v1BotNameContains: self.v1BotNameContains )} } - -/// Paginate over `[GetSlotTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSlotTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSlotTypesOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetSlotTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSlotTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSlotTypesOutputResponse` public func getSlotTypesPaginated(input: GetSlotTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSlotTypesInput.nextToken, outputKey: \GetSlotTypesOutputResponse.nextToken, paginationFunction: self.getSlotTypes(input:)) } @@ -240,16 +230,15 @@ extension GetSlotTypesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetSlotTypeVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSlotTypeVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSlotTypeVersionsOutputResponse` extension LexModelBuildingClient { + /// Paginate over `[GetSlotTypeVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSlotTypeVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSlotTypeVersionsOutputResponse` public func getSlotTypeVersionsPaginated(input: GetSlotTypeVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSlotTypeVersionsInput.nextToken, outputKey: \GetSlotTypeVersionsOutputResponse.nextToken, paginationFunction: self.getSlotTypeVersions(input:)) } diff --git a/Sources/Services/AWSLexModelsV2/Paginators.swift b/Sources/Services/AWSLexModelsV2/Paginators.swift index a2677cb30e6..22c39d90d7d 100644 --- a/Sources/Services/AWSLexModelsV2/Paginators.swift +++ b/Sources/Services/AWSLexModelsV2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAggregatedUtterancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAggregatedUtterancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAggregatedUtterancesOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListAggregatedUtterancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAggregatedUtterancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAggregatedUtterancesOutputResponse` public func listAggregatedUtterancesPaginated(input: ListAggregatedUtterancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAggregatedUtterancesInput.nextToken, outputKey: \ListAggregatedUtterancesOutputResponse.nextToken, paginationFunction: self.listAggregatedUtterances(input:)) } @@ -31,16 +30,15 @@ extension ListAggregatedUtterancesInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListBotAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotAliasesOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBotAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotAliasesOutputResponse` public func listBotAliasesPaginated(input: ListBotAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotAliasesInput.nextToken, outputKey: \ListBotAliasesOutputResponse.nextToken, paginationFunction: self.listBotAliases(input:)) } @@ -54,16 +52,15 @@ extension ListBotAliasesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListBotLocalesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotLocalesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotLocalesOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBotLocalesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotLocalesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotLocalesOutputResponse` public func listBotLocalesPaginated(input: ListBotLocalesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotLocalesInput.nextToken, outputKey: \ListBotLocalesOutputResponse.nextToken, paginationFunction: self.listBotLocales(input:)) } @@ -80,16 +77,15 @@ extension ListBotLocalesInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListBotRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotRecommendationsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBotRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotRecommendationsOutputResponse` public func listBotRecommendationsPaginated(input: ListBotRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotRecommendationsInput.nextToken, outputKey: \ListBotRecommendationsOutputResponse.nextToken, paginationFunction: self.listBotRecommendations(input:)) } @@ -105,16 +101,15 @@ extension ListBotRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListBotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotsOutputResponse` public func listBotsPaginated(input: ListBotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotsInput.nextToken, outputKey: \ListBotsOutputResponse.nextToken, paginationFunction: self.listBots(input:)) } @@ -129,16 +124,15 @@ extension ListBotsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListBotVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBotVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBotVersionsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBotVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBotVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBotVersionsOutputResponse` public func listBotVersionsPaginated(input: ListBotVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBotVersionsInput.nextToken, outputKey: \ListBotVersionsOutputResponse.nextToken, paginationFunction: self.listBotVersions(input:)) } @@ -153,16 +147,15 @@ extension ListBotVersionsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListBuiltInIntentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuiltInIntentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuiltInIntentsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBuiltInIntentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuiltInIntentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuiltInIntentsOutputResponse` public func listBuiltInIntentsPaginated(input: ListBuiltInIntentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuiltInIntentsInput.nextToken, outputKey: \ListBuiltInIntentsOutputResponse.nextToken, paginationFunction: self.listBuiltInIntents(input:)) } @@ -177,16 +170,15 @@ extension ListBuiltInIntentsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListBuiltInSlotTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBuiltInSlotTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBuiltInSlotTypesOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListBuiltInSlotTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBuiltInSlotTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBuiltInSlotTypesOutputResponse` public func listBuiltInSlotTypesPaginated(input: ListBuiltInSlotTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBuiltInSlotTypesInput.nextToken, outputKey: \ListBuiltInSlotTypesOutputResponse.nextToken, paginationFunction: self.listBuiltInSlotTypes(input:)) } @@ -201,16 +193,15 @@ extension ListBuiltInSlotTypesInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListCustomVocabularyItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomVocabularyItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomVocabularyItemsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListCustomVocabularyItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomVocabularyItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomVocabularyItemsOutputResponse` public func listCustomVocabularyItemsPaginated(input: ListCustomVocabularyItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomVocabularyItemsInput.nextToken, outputKey: \ListCustomVocabularyItemsOutputResponse.nextToken, paginationFunction: self.listCustomVocabularyItems(input:)) } @@ -226,16 +217,15 @@ extension ListCustomVocabularyItemsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExportsOutputResponse` public func listExportsPaginated(input: ListExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExportsInput.nextToken, outputKey: \ListExportsOutputResponse.nextToken, paginationFunction: self.listExports(input:)) } @@ -253,16 +243,15 @@ extension ListExportsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListImportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListImportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportsOutputResponse` public func listImportsPaginated(input: ListImportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportsInput.nextToken, outputKey: \ListImportsOutputResponse.nextToken, paginationFunction: self.listImports(input:)) } @@ -280,16 +269,15 @@ extension ListImportsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListIntentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIntentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIntentsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListIntentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIntentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIntentsOutputResponse` public func listIntentsPaginated(input: ListIntentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIntentsInput.nextToken, outputKey: \ListIntentsOutputResponse.nextToken, paginationFunction: self.listIntents(input:)) } @@ -307,16 +295,15 @@ extension ListIntentsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListRecommendedIntentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendedIntentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendedIntentsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListRecommendedIntentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendedIntentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendedIntentsOutputResponse` public func listRecommendedIntentsPaginated(input: ListRecommendedIntentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendedIntentsInput.nextToken, outputKey: \ListRecommendedIntentsOutputResponse.nextToken, paginationFunction: self.listRecommendedIntents(input:)) } @@ -333,16 +320,15 @@ extension ListRecommendedIntentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSlotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSlotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSlotsOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListSlotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSlotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSlotsOutputResponse` public func listSlotsPaginated(input: ListSlotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSlotsInput.nextToken, outputKey: \ListSlotsOutputResponse.nextToken, paginationFunction: self.listSlots(input:)) } @@ -361,16 +347,15 @@ extension ListSlotsInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[ListSlotTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSlotTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSlotTypesOutputResponse` extension LexModelsV2Client { + /// Paginate over `[ListSlotTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSlotTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSlotTypesOutputResponse` public func listSlotTypesPaginated(input: ListSlotTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSlotTypesInput.nextToken, outputKey: \ListSlotTypesOutputResponse.nextToken, paginationFunction: self.listSlotTypes(input:)) } diff --git a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Paginators.swift b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Paginators.swift index 8da1be89f6b..ae40b3b236d 100644 --- a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Paginators.swift +++ b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListLinuxSubscriptionInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLinuxSubscriptionInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLinuxSubscriptionInstancesOutputResponse` extension LicenseManagerLinuxSubscriptionsClient { + /// Paginate over `[ListLinuxSubscriptionInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLinuxSubscriptionInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLinuxSubscriptionInstancesOutputResponse` public func listLinuxSubscriptionInstancesPaginated(input: ListLinuxSubscriptionInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLinuxSubscriptionInstancesInput.nextToken, outputKey: \ListLinuxSubscriptionInstancesOutputResponse.nextToken, paginationFunction: self.listLinuxSubscriptionInstances(input:)) } @@ -26,24 +25,23 @@ extension ListLinuxSubscriptionInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLinuxSubscriptionInstancesPaginated` -/// to access the nested member `[LicenseManagerLinuxSubscriptionsClientTypes.Instance]` -/// - Returns: `[LicenseManagerLinuxSubscriptionsClientTypes.Instance]` extension PaginatorSequence where Input == ListLinuxSubscriptionInstancesInput, Output == ListLinuxSubscriptionInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLinuxSubscriptionInstancesPaginated` + /// to access the nested member `[LicenseManagerLinuxSubscriptionsClientTypes.Instance]` + /// - Returns: `[LicenseManagerLinuxSubscriptionsClientTypes.Instance]` public func instances() async throws -> [LicenseManagerLinuxSubscriptionsClientTypes.Instance] { return try await self.asyncCompactMap { item in item.instances } } } - -/// Paginate over `[ListLinuxSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLinuxSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLinuxSubscriptionsOutputResponse` extension LicenseManagerLinuxSubscriptionsClient { + /// Paginate over `[ListLinuxSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLinuxSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLinuxSubscriptionsOutputResponse` public func listLinuxSubscriptionsPaginated(input: ListLinuxSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLinuxSubscriptionsInput.nextToken, outputKey: \ListLinuxSubscriptionsOutputResponse.nextToken, paginationFunction: self.listLinuxSubscriptions(input:)) } @@ -58,10 +56,10 @@ extension ListLinuxSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLinuxSubscriptionsPaginated` -/// to access the nested member `[LicenseManagerLinuxSubscriptionsClientTypes.Subscription]` -/// - Returns: `[LicenseManagerLinuxSubscriptionsClientTypes.Subscription]` extension PaginatorSequence where Input == ListLinuxSubscriptionsInput, Output == ListLinuxSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLinuxSubscriptionsPaginated` + /// to access the nested member `[LicenseManagerLinuxSubscriptionsClientTypes.Subscription]` + /// - Returns: `[LicenseManagerLinuxSubscriptionsClientTypes.Subscription]` public func subscriptions() async throws -> [LicenseManagerLinuxSubscriptionsClientTypes.Subscription] { return try await self.asyncCompactMap { item in item.subscriptions } } diff --git a/Sources/Services/AWSLicenseManagerUserSubscriptions/Paginators.swift b/Sources/Services/AWSLicenseManagerUserSubscriptions/Paginators.swift index f4f9dc72712..eb5ff5fb5d0 100644 --- a/Sources/Services/AWSLicenseManagerUserSubscriptions/Paginators.swift +++ b/Sources/Services/AWSLicenseManagerUserSubscriptions/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListIdentityProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentityProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` extension LicenseManagerUserSubscriptionsClient { + /// Paginate over `[ListIdentityProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentityProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` public func listIdentityProvidersPaginated(input: ListIdentityProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentityProvidersInput.nextToken, outputKey: \ListIdentityProvidersOutputResponse.nextToken, paginationFunction: self.listIdentityProviders(input:)) } @@ -25,24 +24,23 @@ extension ListIdentityProvidersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIdentityProvidersPaginated` -/// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.IdentityProviderSummary]` -/// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.IdentityProviderSummary]` extension PaginatorSequence where Input == ListIdentityProvidersInput, Output == ListIdentityProvidersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIdentityProvidersPaginated` + /// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.IdentityProviderSummary]` + /// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.IdentityProviderSummary]` public func identityProviderSummaries() async throws -> [LicenseManagerUserSubscriptionsClientTypes.IdentityProviderSummary] { return try await self.asyncCompactMap { item in item.identityProviderSummaries } } } - -/// Paginate over `[ListInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` extension LicenseManagerUserSubscriptionsClient { + /// Paginate over `[ListInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` public func listInstancesPaginated(input: ListInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstancesInput.nextToken, outputKey: \ListInstancesOutputResponse.nextToken, paginationFunction: self.listInstances(input:)) } @@ -57,24 +55,23 @@ extension ListInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` -/// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.InstanceSummary]` -/// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.InstanceSummary]` extension PaginatorSequence where Input == ListInstancesInput, Output == ListInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` + /// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.InstanceSummary]` + /// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.InstanceSummary]` public func instanceSummaries() async throws -> [LicenseManagerUserSubscriptionsClientTypes.InstanceSummary] { return try await self.asyncCompactMap { item in item.instanceSummaries } } } - -/// Paginate over `[ListProductSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProductSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProductSubscriptionsOutputResponse` extension LicenseManagerUserSubscriptionsClient { + /// Paginate over `[ListProductSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProductSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProductSubscriptionsOutputResponse` public func listProductSubscriptionsPaginated(input: ListProductSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProductSubscriptionsInput.nextToken, outputKey: \ListProductSubscriptionsOutputResponse.nextToken, paginationFunction: self.listProductSubscriptions(input:)) } @@ -91,24 +88,23 @@ extension ListProductSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProductSubscriptionsPaginated` -/// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.ProductUserSummary]` -/// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.ProductUserSummary]` extension PaginatorSequence where Input == ListProductSubscriptionsInput, Output == ListProductSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProductSubscriptionsPaginated` + /// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.ProductUserSummary]` + /// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.ProductUserSummary]` public func productUserSummaries() async throws -> [LicenseManagerUserSubscriptionsClientTypes.ProductUserSummary] { return try await self.asyncCompactMap { item in item.productUserSummaries } } } - -/// Paginate over `[ListUserAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserAssociationsOutputResponse` extension LicenseManagerUserSubscriptionsClient { + /// Paginate over `[ListUserAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserAssociationsOutputResponse` public func listUserAssociationsPaginated(input: ListUserAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserAssociationsInput.nextToken, outputKey: \ListUserAssociationsOutputResponse.nextToken, paginationFunction: self.listUserAssociations(input:)) } @@ -125,10 +121,10 @@ extension ListUserAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserAssociationsPaginated` -/// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.InstanceUserSummary]` -/// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.InstanceUserSummary]` extension PaginatorSequence where Input == ListUserAssociationsInput, Output == ListUserAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserAssociationsPaginated` + /// to access the nested member `[LicenseManagerUserSubscriptionsClientTypes.InstanceUserSummary]` + /// - Returns: `[LicenseManagerUserSubscriptionsClientTypes.InstanceUserSummary]` public func instanceUserSummaries() async throws -> [LicenseManagerUserSubscriptionsClientTypes.InstanceUserSummary] { return try await self.asyncCompactMap { item in item.instanceUserSummaries } } diff --git a/Sources/Services/AWSLightsail/EndpointResolver.swift b/Sources/Services/AWSLightsail/EndpointResolver.swift index 1258091e6e6..ecab9cf78b9 100644 --- a/Sources/Services/AWSLightsail/EndpointResolver.swift +++ b/Sources/Services/AWSLightsail/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://lightsail.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSLightsail/LightsailClient.swift b/Sources/Services/AWSLightsail/LightsailClient.swift index d789ae70bb4..6f397044040 100644 --- a/Sources/Services/AWSLightsail/LightsailClient.swift +++ b/Sources/Services/AWSLightsail/LightsailClient.swift @@ -224,7 +224,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "allocateStaticIp") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -260,7 +263,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "attachCertificateToDistribution") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -296,7 +302,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "attachDisk") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -332,7 +341,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "attachInstancesToLoadBalancer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -368,7 +380,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "attachLoadBalancerTlsCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -404,7 +419,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "attachStaticIp") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -440,7 +458,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "closeInstancePublicPorts") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -476,7 +497,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "copySnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -512,7 +536,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBucket") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -548,7 +575,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createBucketAccessKey") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -584,7 +614,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -620,7 +653,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createCloudFormationStack") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -656,7 +692,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createContactMethod") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -692,7 +731,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createContainerService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -728,7 +770,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createContainerServiceDeployment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -764,7 +809,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createContainerServiceRegistryLogin") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -800,7 +848,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDisk") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -836,7 +887,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDiskFromSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -872,7 +926,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDiskSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -908,7 +965,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDistribution") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -944,7 +1004,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -980,7 +1043,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createDomainEntry") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1016,7 +1082,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createInstanceSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1052,7 +1121,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createInstances") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1088,7 +1160,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createInstancesFromSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1124,7 +1199,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createKeyPair") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1160,7 +1238,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createLoadBalancer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1196,7 +1277,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createLoadBalancerTlsCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1232,7 +1316,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1268,7 +1355,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createRelationalDatabaseFromSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1304,7 +1394,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "createRelationalDatabaseSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1340,7 +1433,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAlarm") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1376,7 +1472,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteAutoSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1412,7 +1511,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBucket") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1448,7 +1550,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteBucketAccessKey") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1484,7 +1589,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1520,7 +1628,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteContactMethod") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1556,7 +1667,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteContainerImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1592,7 +1706,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteContainerService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1628,7 +1745,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDisk") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1664,7 +1784,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDiskSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1700,7 +1823,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDistribution") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1736,7 +1862,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1772,7 +1901,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteDomainEntry") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1808,7 +1940,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteInstance") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1844,7 +1979,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteInstanceSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1880,7 +2018,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteKeyPair") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1916,7 +2057,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteKnownHostKeys") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1952,7 +2096,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteLoadBalancer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1988,7 +2135,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteLoadBalancerTlsCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2024,7 +2174,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2060,7 +2213,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteRelationalDatabaseSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2096,7 +2252,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "detachCertificateFromDistribution") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2132,7 +2291,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "detachDisk") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2168,7 +2330,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "detachInstancesFromLoadBalancer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2204,7 +2369,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "detachStaticIp") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2240,7 +2408,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "disableAddOn") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2276,7 +2447,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "downloadDefaultKeyPair") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2312,7 +2486,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "enableAddOn") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2348,7 +2525,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "exportSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2384,7 +2564,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getActiveNames") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2420,7 +2603,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAlarms") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2456,7 +2642,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getAutoSnapshots") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2492,7 +2681,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBlueprints") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2528,7 +2720,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBucketAccessKeys") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2564,7 +2759,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBucketBundles") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2600,7 +2798,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBucketMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2636,7 +2837,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBuckets") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2672,7 +2876,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getBundles") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2708,7 +2915,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCertificates") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2744,7 +2954,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCloudFormationStackRecords") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2780,7 +2993,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContactMethods") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2816,7 +3032,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerAPIMetadata") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2852,7 +3071,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerImages") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2888,7 +3110,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerLog") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2925,7 +3150,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerServiceDeployments") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2961,7 +3189,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerServiceMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2998,7 +3229,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerServicePowers") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3034,7 +3268,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getContainerServices") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3071,7 +3308,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDisk") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3107,7 +3347,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDiskSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3143,7 +3386,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDiskSnapshots") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3179,7 +3425,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDisks") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3215,7 +3464,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDistributionBundles") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3251,7 +3503,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDistributionLatestCacheReset") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3287,7 +3542,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDistributionMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3323,7 +3581,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDistributions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3359,7 +3620,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDomain") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3395,7 +3659,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDomains") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3431,7 +3698,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getExportSnapshotRecords") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3467,7 +3737,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstance") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3503,7 +3776,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstanceAccessDetails") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3539,7 +3815,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstanceMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3575,7 +3854,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstancePortStates") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3611,7 +3893,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstanceSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3647,7 +3932,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstanceSnapshots") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3683,7 +3971,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstanceState") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3719,7 +4010,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getInstances") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3755,7 +4049,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getKeyPair") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3791,7 +4088,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getKeyPairs") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3827,7 +4127,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getLoadBalancer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3863,7 +4166,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getLoadBalancerMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3899,7 +4205,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getLoadBalancerTlsCertificates") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3935,7 +4244,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getLoadBalancerTlsPolicies") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -3971,7 +4283,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getLoadBalancers") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4007,7 +4322,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOperation") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4043,7 +4361,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOperations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4079,7 +4400,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOperationsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4115,7 +4439,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRegions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4151,7 +4478,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4187,7 +4517,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseBlueprints") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4223,7 +4556,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseBundles") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4259,7 +4595,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseEvents") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4295,7 +4634,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseLogEvents") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4331,7 +4673,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseLogStreams") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4367,7 +4712,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseMasterUserPassword") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4403,7 +4751,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseMetricData") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4439,7 +4790,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseParameters") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4475,7 +4829,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseSnapshot") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4511,7 +4868,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabaseSnapshots") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4547,7 +4907,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getRelationalDatabases") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4583,7 +4946,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getStaticIp") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4619,7 +4985,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "getStaticIps") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4655,7 +5024,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "importKeyPair") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4691,7 +5063,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "isVpcPeered") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4727,7 +5102,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "openInstancePublicPorts") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4763,7 +5141,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "peerVpc") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4799,7 +5180,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "putAlarm") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4835,7 +5219,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "putInstancePublicPorts") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4871,7 +5258,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "rebootInstance") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4907,7 +5297,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "rebootRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4943,7 +5336,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "registerContainerImage") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -4979,7 +5375,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "releaseStaticIp") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5015,7 +5414,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "resetDistributionCache") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5051,7 +5453,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "sendContactMethodVerification") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5087,7 +5492,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "setIpAddressType") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5123,7 +5531,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "setResourceAccessForBucket") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5159,7 +5570,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "startInstance") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5195,7 +5609,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "startRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5231,7 +5648,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "stopInstance") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5267,7 +5687,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "stopRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5303,7 +5726,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5339,7 +5765,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "testAlarm") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5375,7 +5804,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "unpeerVpc") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5411,7 +5843,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5447,7 +5882,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBucket") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5483,7 +5921,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateBucketBundle") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5519,7 +5960,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateContainerService") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5555,7 +5999,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateDistribution") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5591,7 +6038,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateDistributionBundle") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5627,7 +6077,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateDomainEntry") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5663,7 +6116,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateInstanceMetadataOptions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5699,7 +6155,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateLoadBalancerAttribute") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5735,7 +6194,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateRelationalDatabase") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -5771,7 +6233,10 @@ extension LightsailClient: LightsailClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateRelationalDatabaseParameters") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSLightsail/models/Models.swift b/Sources/Services/AWSLightsail/models/Models.swift index 2649959078e..134d17eed4b 100644 --- a/Sources/Services/AWSLightsail/models/Models.swift +++ b/Sources/Services/AWSLightsail/models/Models.swift @@ -8140,7 +8140,7 @@ extension CreateDomainInput: ClientRuntime.URLPathProvider { } public struct CreateDomainInput: Swift.Equatable { - /// The domain name to manage (e.g., example.com). You cannot register a new domain name using Lightsail. You must register a domain name using Amazon Route 53 or another domain name registrar. If you have already registered your domain, you can enter its name in this parameter to manage the DNS records for that domain using Lightsail. + /// The domain name to manage (e.g., example.com). /// This member is required. public var domainName: Swift.String? /// The tag keys and optional values to add to the resource during create. Use the TagResource action to tag a resource after it's created. @@ -11458,7 +11458,7 @@ public struct DeleteDiskInput: Swift.Equatable { /// The unique name of the disk you want to delete (e.g., my-disk). /// This member is required. public var diskName: Swift.String? - /// A Boolean value to indicate whether to delete the enabled add-ons for the disk. + /// A Boolean value to indicate whether to delete all add-ons for the disk. public var forceDeleteAddOns: Swift.Bool? public init ( @@ -12110,7 +12110,7 @@ extension DeleteInstanceInput: ClientRuntime.URLPathProvider { } public struct DeleteInstanceInput: Swift.Equatable { - /// A Boolean value to indicate whether to delete the enabled add-ons for the disk. + /// A Boolean value to indicate whether to delete all add-ons for the instance. public var forceDeleteAddOns: Swift.Bool? /// The name of the instance to delete. /// This member is required. diff --git a/Sources/Services/AWSLocation/EndpointResolver.swift b/Sources/Services/AWSLocation/EndpointResolver.swift index fe93fe2a372..bdc349dbcc4 100644 --- a/Sources/Services/AWSLocation/EndpointResolver.swift +++ b/Sources/Services/AWSLocation/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://geo.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSLocation/LocationClient.swift b/Sources/Services/AWSLocation/LocationClient.swift index 3e2998b13f5..bc19c500db4 100644 --- a/Sources/Services/AWSLocation/LocationClient.swift +++ b/Sources/Services/AWSLocation/LocationClient.swift @@ -224,7 +224,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateTrackerConsumer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -259,7 +262,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchDeleteDevicePositionHistory") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -294,7 +300,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchDeleteGeofence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -336,7 +345,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchEvaluateGeofences") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -371,7 +383,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchGetDevicePosition") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -406,7 +421,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchPutGeofence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -441,7 +459,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "batchUpdateDevicePosition") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -480,7 +501,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "calculateRoute") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -519,7 +543,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "calculateRouteMatrix") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -554,7 +581,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "createGeofenceCollection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -570,7 +600,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. public func createMap(input: CreateMapInput) async throws -> CreateMapOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -589,7 +619,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "createMap") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -605,7 +638,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Creates a place index resource in your AWS account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a place index resource in your AWS account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. public func createPlaceIndex(input: CreatePlaceIndexInput) async throws -> CreatePlaceIndexOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -624,7 +657,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "createPlaceIndex") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -640,7 +676,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Creates a route calculator resource in your AWS account. You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a route calculator resource in your AWS account. You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. public func createRouteCalculator(input: CreateRouteCalculatorInput) async throws -> CreateRouteCalculatorOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -659,7 +695,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "createRouteCalculator") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -694,7 +733,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "createTracker") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -729,7 +771,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteGeofenceCollection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -761,7 +806,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteMap") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -793,7 +841,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "deletePlaceIndex") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -825,7 +876,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteRouteCalculator") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -857,7 +911,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteTracker") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -889,7 +946,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeGeofenceCollection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -921,7 +981,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeMap") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -953,7 +1016,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "describePlaceIndex") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -985,7 +1051,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeRouteCalculator") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1017,7 +1086,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeTracker") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1049,7 +1121,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateTrackerConsumer") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1081,7 +1156,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDevicePosition") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1113,7 +1191,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getDevicePositionHistory") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1148,7 +1229,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getGeofence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1180,7 +1264,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getMapGlyphs") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1212,7 +1299,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getMapSprites") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1244,7 +1334,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getMapStyleDescriptor") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1276,7 +1369,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getMapTile") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1314,7 +1410,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "getPlace") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1347,7 +1446,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listDevicePositions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1382,7 +1484,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listGeofenceCollections") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1417,7 +1522,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listGeofences") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1452,7 +1560,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listMaps") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1487,7 +1598,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPlaceIndexes") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1522,7 +1636,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listRouteCalculators") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1557,7 +1674,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "metadata.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1589,7 +1709,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTrackerConsumers") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1624,7 +1747,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTrackers") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1659,7 +1785,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "putGeofence") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1694,7 +1823,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "searchPlaceIndexForPosition") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1729,7 +1861,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "searchPlaceIndexForSuggestions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1764,7 +1899,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "searchPlaceIndexForText") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1799,7 +1937,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "metadata.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1834,7 +1975,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "metadata.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1867,7 +2011,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateGeofenceCollection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "geofencing.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1902,7 +2049,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateMap") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "maps.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1937,7 +2087,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "updatePlaceIndex") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "places.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1972,7 +2125,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateRouteCalculator") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "routes.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -2007,7 +2163,10 @@ extension LocationClient: LocationClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateTracker") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "tracking.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSLocation/LocationClientProtocol.swift b/Sources/Services/AWSLocation/LocationClientProtocol.swift index 55c6f26b2b2..649ad92aae7 100644 --- a/Sources/Services/AWSLocation/LocationClientProtocol.swift +++ b/Sources/Services/AWSLocation/LocationClientProtocol.swift @@ -40,11 +40,11 @@ public protocol LocationClientProtocol { func calculateRouteMatrix(input: CalculateRouteMatrixInput) async throws -> CalculateRouteMatrixOutputResponse /// Creates a geofence collection, which manages and stores geofences. func createGeofenceCollection(input: CreateGeofenceCollectionInput) async throws -> CreateGeofenceCollectionOutputResponse - /// Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a map resource in your AWS account, which provides map tiles of different styles sourced from global location data providers. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. func createMap(input: CreateMapInput) async throws -> CreateMapOutputResponse - /// Creates a place index resource in your AWS account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a place index resource in your AWS account. Use a place index resource to geocode addresses and other text queries by using the SearchPlaceIndexForText operation, and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and enable autosuggestions by using the SearchPlaceIndexForSuggestions operation. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. func createPlaceIndex(input: CreatePlaceIndexInput) async throws -> CreatePlaceIndexOutputResponse - /// Creates a route calculator resource in your AWS account. You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you may only use HERE as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. + /// Creates a route calculator resource in your AWS account. You can send requests to a route calculator resource to estimate travel time, distance, and get directions. A route calculator sources traffic and road network data from your chosen data provider. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [AWS service terms](http://aws.amazon.com/service-terms) for more details. func createRouteCalculator(input: CreateRouteCalculatorInput) async throws -> CreateRouteCalculatorOutputResponse /// Creates a tracker resource in your AWS account, which lets you retrieve current and historical location of devices. func createTracker(input: CreateTrackerInput) async throws -> CreateTrackerOutputResponse diff --git a/Sources/Services/AWSLocation/models/Models.swift b/Sources/Services/AWSLocation/models/Models.swift index 5581639297e..f047d9397a1 100644 --- a/Sources/Services/AWSLocation/models/Models.swift +++ b/Sources/Services/AWSLocation/models/Models.swift @@ -1751,7 +1751,7 @@ public struct CalculateRouteInput: Swift.Equatable { public var distanceUnit: LocationClientTypes.DistanceUnit? /// Set to include the geometry details in the result for each path between a pair of positions. Default Value: false Valid Values: false | true public var includeLegGeometry: Swift.Bool? - /// Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. You can choose Car, Truck, or Walking as options for the TravelMode. The TravelMode you specify also determines how you specify route preferences: + /// Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. You can choose Car, Truck, Walking, Bicycle or Motorcycle as options for the TravelMode. Bicycle and Motorcycle are only valid when using Grab as a data provider, and only within Southeast Asia. Truck is not available for Grab. For more details on the using Grab for routing, including areas of coverage, see [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html) in the Amazon Location Service Developer Guide. The TravelMode you specify also determines how you specify route preferences: /// /// * If traveling by Car use the CarModeOptions parameter. /// @@ -1975,7 +1975,7 @@ public struct CalculateRouteMatrixInput: Swift.Equatable { /// * If traveling by Truck use the TruckModeOptions parameter. /// /// - /// Default Value: Car + /// Bicycle or Motorcycle are only valid when using Grab as a data provider, and only within Southeast Asia. Truck is not available for Grab. For more information about using Grab as a data provider, see [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html) in the Amazon Location Service Developer Guide. Default Value: Car public var travelMode: LocationClientTypes.TravelMode? /// Specifies route preferences when traveling by Truck, such as avoiding routes that use ferries or tolls, and truck specifications to consider when choosing an optimal road. Requirements: TravelMode must be specified as Truck. public var truckModeOptions: LocationClientTypes.CalculateRouteTruckModeOptions? @@ -2286,6 +2286,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -2489,6 +2491,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -2874,6 +2878,7 @@ extension CreateGeofenceCollectionOutputError { case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) @@ -2885,6 +2890,7 @@ public enum CreateGeofenceCollectionOutputError: Swift.Error, Swift.Equatable { case accessDeniedException(AccessDeniedException) case conflictException(ConflictException) case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) case throttlingException(ThrottlingException) case validationException(ValidationException) case unknown(UnknownAWSHttpServiceError) @@ -3098,6 +3104,7 @@ extension CreateMapOutputError { case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) @@ -3109,6 +3116,7 @@ public enum CreateMapOutputError: Swift.Error, Swift.Equatable { case accessDeniedException(AccessDeniedException) case conflictException(ConflictException) case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) case throttlingException(ThrottlingException) case validationException(ValidationException) case unknown(UnknownAWSHttpServiceError) @@ -3227,6 +3235,8 @@ public struct CreatePlaceIndexInput: Swift.Equatable { /// /// * Esri – For additional information about [Esri](https://docs.aws.amazon.com/location/latest/developerguide/esri.html)'s coverage in your region of interest, see [Esri details on geocoding coverage](https://developers.arcgis.com/rest/geocode/api-reference/geocode-coverage.htm). /// + /// * Grab – Grab provides place index functionality for Southeast Asia. For additional information about [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html)' coverage, see [GrabMaps countries and areas covered](https://docs.aws.amazon.com/location/latest/developerguide/grab.html#grab-coverage-area). + /// /// * Here – For additional information about [HERE Technologies](https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)' coverage in your region of interest, see [HERE details on goecoding coverage](https://developer.here.com/documentation/geocoder/dev_guide/topics/coverage-geocoder.html). If you specify HERE Technologies (Here) as the data provider, you may not [store results](https://docs.aws.amazon.com/location-places/latest/APIReference/API_DataSourceConfiguration.html) for locations in Japan. For more information, see the [AWS Service Terms](https://aws.amazon.com/service-terms/) for Amazon Location Service. /// /// @@ -3341,6 +3351,7 @@ extension CreatePlaceIndexOutputError { case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) @@ -3352,6 +3363,7 @@ public enum CreatePlaceIndexOutputError: Swift.Error, Swift.Equatable { case accessDeniedException(AccessDeniedException) case conflictException(ConflictException) case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) case throttlingException(ThrottlingException) case validationException(ValidationException) case unknown(UnknownAWSHttpServiceError) @@ -3471,9 +3483,11 @@ public struct CreateRouteCalculatorInput: Swift.Equatable { /// * No spaces allowed. For example, ExampleRouteCalculator. /// This member is required. public var calculatorName: Swift.String? - /// Specifies the data provider of traffic and road network data. This field is case-sensitive. Enter the valid values as shown. For example, entering HERE returns an error. Route calculators that use Esri as a data source only calculate routes that are shorter than 400 km. Valid values include: + /// Specifies the data provider of traffic and road network data. This field is case-sensitive. Enter the valid values as shown. For example, entering HERE returns an error. Valid values include: + /// + /// * Esri – For additional information about [Esri](https://docs.aws.amazon.com/location/latest/developerguide/esri.html)'s coverage in your region of interest, see [Esri details on street networks and traffic coverage](https://doc.arcgis.com/en/arcgis-online/reference/network-coverage.htm). Route calculators that use Esri as a data source only calculate routes that are shorter than 400 km. /// - /// * Esri – For additional information about [Esri](https://docs.aws.amazon.com/location/latest/developerguide/esri.html)'s coverage in your region of interest, see [Esri details on street networks and traffic coverage](https://doc.arcgis.com/en/arcgis-online/reference/network-coverage.htm). + /// * Grab – Grab provides routing functionality for Southeast Asia. For additional information about [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html)' coverage, see [GrabMaps countries and areas covered](https://docs.aws.amazon.com/location/latest/developerguide/grab.html#grab-coverage-area). /// /// * Here – For additional information about [HERE Technologies](https://docs.aws.amazon.com/location/latest/developerguide/HERE.html)' coverage in your region of interest, see [HERE car routing coverage](https://developer.here.com/documentation/routing-api/dev_guide/topics/coverage/car-routing.html) and [HERE truck routing coverage](https://developer.here.com/documentation/routing-api/dev_guide/topics/coverage/truck-routing.html). /// @@ -3577,6 +3591,7 @@ extension CreateRouteCalculatorOutputError { case "AccessDeniedException" : self = .accessDeniedException(try AccessDeniedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ConflictException" : self = .conflictException(try ConflictException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "InternalServerException" : self = .internalServerException(try InternalServerException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ServiceQuotaExceededException" : self = .serviceQuotaExceededException(try ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ThrottlingException" : self = .throttlingException(try ThrottlingException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "ValidationException" : self = .validationException(try ValidationException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) @@ -3588,6 +3603,7 @@ public enum CreateRouteCalculatorOutputError: Swift.Error, Swift.Equatable { case accessDeniedException(AccessDeniedException) case conflictException(ConflictException) case internalServerException(InternalServerException) + case serviceQuotaExceededException(ServiceQuotaExceededException) case throttlingException(ThrottlingException) case validationException(ValidationException) case unknown(UnknownAWSHttpServiceError) @@ -4823,6 +4839,8 @@ public struct DescribePlaceIndexOutputResponse: Swift.Equatable { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -5039,6 +5057,8 @@ public struct DescribeRouteCalculatorOutputResponse: Swift.Equatable { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -6380,6 +6400,11 @@ public struct GetMapGlyphsInput: Swift.Equatable { /// * VectorHereExplore, VectorHereExploreTruck, HybridHereExploreSatellite – Fira GO Italic | Fira GO Map | Fira GO Map Bold | Noto Sans CJK JP Bold | Noto Sans CJK JP Light | Noto Sans CJK JP Regular /// /// + /// Valid font stacks for [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html) styles: + /// + /// * VectorGrabStandardLight, VectorGrabStandardDark – Noto Sans Regular | Noto Sans Medium | Noto Sans Bold + /// + /// /// Valid font stacks for [Open Data (Preview)](https://docs.aws.amazon.com/location/latest/developerguide/open-data.html) styles: /// /// * VectorOpenDataStandardLight – Amazon Ember Regular,Noto Sans Regular | Amazon Ember Bold,Noto Sans Bold | Amazon Ember Medium,Noto Sans Medium | Amazon Ember Regular Italic,Noto Sans Italic | Amazon Ember Condensed RC Regular,Noto Sans Regular | Amazon Ember Condensed RC Bold,Noto Sans Bold @@ -8476,6 +8501,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -8727,6 +8754,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -9327,7 +9356,14 @@ extension LocationClientTypes { /// * HybridHereExploreSatellite – A global map displaying the road network, street names, and city labels over satellite imagery. This style will automatically retrieve both raster and vector tiles, and your charges will be based on total tiles retrieved. Hybrid styles use both vector and raster tiles when rendering the map that you see. This means that more tiles are retrieved than when using either vector or raster tiles alone. Your charges will include all tiles retrieved. /// /// - /// Valid [Open Data (Preview) map styles](https://docs.aws.amazon.com/location/latest/developerguide/open-data.html): + /// Valid [GrabMaps map styles](https://docs.aws.amazon.com/location/latest/developerguide/grab.html): + /// + /// * VectorGrabStandardLight – The Grab Standard Light map style provides a basemap with detailed land use coloring, area names, roads, landmarks, and points of interest covering Southeast Asia. + /// + /// * VectorGrabStandardDark – The Grab Standard Dark map style provides a dark variation of the standard basemap covering Southeast Asia. + /// + /// + /// Grab provides maps only for countries in Southeast Asia, and is only available in the Asia Pacific (Singapore) Region (ap-southeast-1). For more information, see [GrabMaps countries and area covered](https://docs.aws.amazon.com/location/latest/developerguide/grab.html#grab-coverage-area). Valid [Open Data (Preview) map styles](https://docs.aws.amazon.com/location/latest/developerguide/open-data.html): /// /// * VectorOpenDataStandardLight – The Open Data Standard Light (preview) map style provides a detailed basemap for the world suitable for website and mobile application use. The map includes highways major roads, minor roads, railways, water features, cities, parks, landmarks, building footprints, and administrative boundaries. Open Data maps is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Open Data is in preview release](https://docs.aws.amazon.com/location/latest/developerguide/open-data.html#open-data-preview). /// This member is required. @@ -9464,7 +9500,7 @@ extension LocationClientTypes { public var region: Swift.String? /// The name for a street or a road to identify a location. For example, Main Street. public var street: Swift.String? - /// A country, or an area that's part of a larger region. For example, Metro Vancouver. + /// A county, or an area that's part of a larger region. For example, Metro Vancouver. public var subRegion: Swift.String? /// The time zone in which the Place is located. Returned only when using HERE as the selected partner. public var timeZone: LocationClientTypes.TimeZone? @@ -10102,7 +10138,7 @@ extension LocationClientTypes { /// Details about the search result, such as its address and position. /// This member is required. public var place: LocationClientTypes.Place? - /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForPosition operations, the PlaceId is returned only by place indexes that use HERE as a data provider. + /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForPosition operations, the PlaceId is returned only by place indexes that use HERE or Grab as a data provider. public var placeId: Swift.String? public init ( @@ -10147,7 +10183,7 @@ extension LocationClientTypes.SearchForSuggestionsResult: Swift.Codable { extension LocationClientTypes { /// Contains a place suggestion resulting from a place suggestion query that is run on a place index resource. public struct SearchForSuggestionsResult: Swift.Equatable { - /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForSuggestions operations, the PlaceId is returned by place indexes that use HERE or Esri as data providers. + /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForSuggestions operations, the PlaceId is returned by place indexes that use Esri, Grab, or HERE as data providers. public var placeId: Swift.String? /// The text of the place suggestion, typically formatted as an address string. /// This member is required. @@ -10210,9 +10246,9 @@ extension LocationClientTypes { /// Details about the search result, such as its address and position. /// This member is required. public var place: LocationClientTypes.Place? - /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForText operations, the PlaceId is returned only by place indexes that use HERE as a data provider. + /// The unique identifier of the place. You can use this with the GetPlace operation to find the place again later. For SearchPlaceIndexForText operations, the PlaceId is returned only by place indexes that use HERE or Grab as a data provider. public var placeId: Swift.String? - /// The relative confidence in the match for a result among the results returned. For example, if more fields for an address match (including house number, street, city, country/region, and postal code), the relevance score is closer to 1. Returned only when the partner selected is Esri. + /// The relative confidence in the match for a result among the results returned. For example, if more fields for an address match (including house number, street, city, country/region, and postal code), the relevance score is closer to 1. Returned only when the partner selected is Esri or Grab. public var relevance: Swift.Double? public init ( @@ -10481,6 +10517,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -10867,6 +10905,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -11281,6 +11321,8 @@ extension LocationClientTypes { /// /// * Esri /// + /// * Grab + /// /// * Here /// /// @@ -11710,14 +11752,18 @@ extension LocationClientTypes { extension LocationClientTypes { public enum TravelMode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case bicycle case car + case motorcycle case truck case walking case sdkUnknown(Swift.String) public static var allCases: [TravelMode] { return [ + .bicycle, .car, + .motorcycle, .truck, .walking, .sdkUnknown("") @@ -11729,7 +11775,9 @@ extension LocationClientTypes { } public var rawValue: Swift.String { switch self { + case .bicycle: return "Bicycle" case .car: return "Car" + case .motorcycle: return "Motorcycle" case .truck: return "Truck" case .walking: return "Walking" case let .sdkUnknown(s): return s diff --git a/Sources/Services/AWSLookoutEquipment/Paginators.swift b/Sources/Services/AWSLookoutEquipment/Paginators.swift index 8dbb836168e..f1a2dd60d34 100644 --- a/Sources/Services/AWSLookoutEquipment/Paginators.swift +++ b/Sources/Services/AWSLookoutEquipment/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDataIngestionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataIngestionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataIngestionJobsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListDataIngestionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataIngestionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataIngestionJobsOutputResponse` public func listDataIngestionJobsPaginated(input: ListDataIngestionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataIngestionJobsInput.nextToken, outputKey: \ListDataIngestionJobsOutputResponse.nextToken, paginationFunction: self.listDataIngestionJobs(input:)) } @@ -26,16 +25,15 @@ extension ListDataIngestionJobsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -49,16 +47,15 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListInferenceEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceEventsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListInferenceEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceEventsOutputResponse` public func listInferenceEventsPaginated(input: ListInferenceEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceEventsInput.nextToken, outputKey: \ListInferenceEventsOutputResponse.nextToken, paginationFunction: self.listInferenceEvents(input:)) } @@ -74,16 +71,15 @@ extension ListInferenceEventsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListInferenceExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceExecutionsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListInferenceExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceExecutionsOutputResponse` public func listInferenceExecutionsPaginated(input: ListInferenceExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceExecutionsInput.nextToken, outputKey: \ListInferenceExecutionsOutputResponse.nextToken, paginationFunction: self.listInferenceExecutions(input:)) } @@ -100,16 +96,15 @@ extension ListInferenceExecutionsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListInferenceSchedulersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceSchedulersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceSchedulersOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListInferenceSchedulersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceSchedulersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceSchedulersOutputResponse` public func listInferenceSchedulersPaginated(input: ListInferenceSchedulersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceSchedulersInput.nextToken, outputKey: \ListInferenceSchedulersOutputResponse.nextToken, paginationFunction: self.listInferenceSchedulers(input:)) } @@ -125,16 +120,15 @@ extension ListInferenceSchedulersInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListLabelGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLabelGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLabelGroupsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListLabelGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLabelGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLabelGroupsOutputResponse` public func listLabelGroupsPaginated(input: ListLabelGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLabelGroupsInput.nextToken, outputKey: \ListLabelGroupsOutputResponse.nextToken, paginationFunction: self.listLabelGroups(input:)) } @@ -148,16 +142,15 @@ extension ListLabelGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListLabelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLabelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLabelsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListLabelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLabelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLabelsOutputResponse` public func listLabelsPaginated(input: ListLabelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLabelsInput.nextToken, outputKey: \ListLabelsOutputResponse.nextToken, paginationFunction: self.listLabels(input:)) } @@ -175,16 +168,15 @@ extension ListLabelsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` public func listModelsPaginated(input: ListModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelsInput.nextToken, outputKey: \ListModelsOutputResponse.nextToken, paginationFunction: self.listModels(input:)) } @@ -200,16 +192,15 @@ extension ListModelsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListSensorStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSensorStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSensorStatisticsOutputResponse` extension LookoutEquipmentClient { + /// Paginate over `[ListSensorStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSensorStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSensorStatisticsOutputResponse` public func listSensorStatisticsPaginated(input: ListSensorStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSensorStatisticsInput.nextToken, outputKey: \ListSensorStatisticsOutputResponse.nextToken, paginationFunction: self.listSensorStatistics(input:)) } diff --git a/Sources/Services/AWSLookoutMetrics/Paginators.swift b/Sources/Services/AWSLookoutMetrics/Paginators.swift index 2a6ec2c077e..0309c702c57 100644 --- a/Sources/Services/AWSLookoutMetrics/Paginators.swift +++ b/Sources/Services/AWSLookoutMetrics/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAnomalyDetectionExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAnomalyDetectionExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAnomalyDetectionExecutionsOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[DescribeAnomalyDetectionExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAnomalyDetectionExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAnomalyDetectionExecutionsOutputResponse` public func describeAnomalyDetectionExecutionsPaginated(input: DescribeAnomalyDetectionExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAnomalyDetectionExecutionsInput.nextToken, outputKey: \DescribeAnomalyDetectionExecutionsOutputResponse.nextToken, paginationFunction: self.describeAnomalyDetectionExecutions(input:)) } @@ -26,16 +25,15 @@ extension DescribeAnomalyDetectionExecutionsInput: ClientRuntime.PaginateToken { timestamp: self.timestamp )} } - -/// Paginate over `[GetFeedbackOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFeedbackInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFeedbackOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[GetFeedbackOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFeedbackInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFeedbackOutputResponse` public func getFeedbackPaginated(input: GetFeedbackInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFeedbackInput.nextToken, outputKey: \GetFeedbackOutputResponse.nextToken, paginationFunction: self.getFeedback(input:)) } @@ -50,16 +48,15 @@ extension GetFeedbackInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAlertsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAlertsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAlertsOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListAlertsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAlertsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAlertsOutputResponse` public func listAlertsPaginated(input: ListAlertsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAlertsInput.nextToken, outputKey: \ListAlertsOutputResponse.nextToken, paginationFunction: self.listAlerts(input:)) } @@ -73,16 +70,15 @@ extension ListAlertsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAnomalyDetectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomalyDetectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyDetectorsOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListAnomalyDetectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomalyDetectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyDetectorsOutputResponse` public func listAnomalyDetectorsPaginated(input: ListAnomalyDetectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomalyDetectorsInput.nextToken, outputKey: \ListAnomalyDetectorsOutputResponse.nextToken, paginationFunction: self.listAnomalyDetectors(input:)) } @@ -95,16 +91,15 @@ extension ListAnomalyDetectorsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAnomalyGroupRelatedMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomalyGroupRelatedMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupRelatedMetricsOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListAnomalyGroupRelatedMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomalyGroupRelatedMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupRelatedMetricsOutputResponse` public func listAnomalyGroupRelatedMetricsPaginated(input: ListAnomalyGroupRelatedMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomalyGroupRelatedMetricsInput.nextToken, outputKey: \ListAnomalyGroupRelatedMetricsOutputResponse.nextToken, paginationFunction: self.listAnomalyGroupRelatedMetrics(input:)) } @@ -120,16 +115,15 @@ extension ListAnomalyGroupRelatedMetricsInput: ClientRuntime.PaginateToken { relationshipTypeFilter: self.relationshipTypeFilter )} } - -/// Paginate over `[ListAnomalyGroupSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomalyGroupSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupSummariesOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListAnomalyGroupSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomalyGroupSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupSummariesOutputResponse` public func listAnomalyGroupSummariesPaginated(input: ListAnomalyGroupSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomalyGroupSummariesInput.nextToken, outputKey: \ListAnomalyGroupSummariesOutputResponse.nextToken, paginationFunction: self.listAnomalyGroupSummaries(input:)) } @@ -144,16 +138,15 @@ extension ListAnomalyGroupSummariesInput: ClientRuntime.PaginateToken { sensitivityThreshold: self.sensitivityThreshold )} } - -/// Paginate over `[ListAnomalyGroupTimeSeriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnomalyGroupTimeSeriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupTimeSeriesOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListAnomalyGroupTimeSeriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnomalyGroupTimeSeriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnomalyGroupTimeSeriesOutputResponse` public func listAnomalyGroupTimeSeriesPaginated(input: ListAnomalyGroupTimeSeriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnomalyGroupTimeSeriesInput.nextToken, outputKey: \ListAnomalyGroupTimeSeriesOutputResponse.nextToken, paginationFunction: self.listAnomalyGroupTimeSeries(input:)) } @@ -169,16 +162,15 @@ extension ListAnomalyGroupTimeSeriesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMetricSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricSetsOutputResponse` extension LookoutMetricsClient { + /// Paginate over `[ListMetricSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricSetsOutputResponse` public func listMetricSetsPaginated(input: ListMetricSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricSetsInput.nextToken, outputKey: \ListMetricSetsOutputResponse.nextToken, paginationFunction: self.listMetricSets(input:)) } diff --git a/Sources/Services/AWSLookoutVision/Paginators.swift b/Sources/Services/AWSLookoutVision/Paginators.swift index fdcf2e80fd8..d31d3023a86 100644 --- a/Sources/Services/AWSLookoutVision/Paginators.swift +++ b/Sources/Services/AWSLookoutVision/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDatasetEntriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetEntriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetEntriesOutputResponse` extension LookoutVisionClient { + /// Paginate over `[ListDatasetEntriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetEntriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetEntriesOutputResponse` public func listDatasetEntriesPaginated(input: ListDatasetEntriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetEntriesInput.nextToken, outputKey: \ListDatasetEntriesOutputResponse.nextToken, paginationFunction: self.listDatasetEntries(input:)) } @@ -32,24 +31,23 @@ extension ListDatasetEntriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetEntriesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDatasetEntriesInput, Output == ListDatasetEntriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetEntriesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func datasetEntries() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.datasetEntries } } } - -/// Paginate over `[ListModelPackagingJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelPackagingJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelPackagingJobsOutputResponse` extension LookoutVisionClient { + /// Paginate over `[ListModelPackagingJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelPackagingJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelPackagingJobsOutputResponse` public func listModelPackagingJobsPaginated(input: ListModelPackagingJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelPackagingJobsInput.nextToken, outputKey: \ListModelPackagingJobsOutputResponse.nextToken, paginationFunction: self.listModelPackagingJobs(input:)) } @@ -64,24 +62,23 @@ extension ListModelPackagingJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelPackagingJobsPaginated` -/// to access the nested member `[LookoutVisionClientTypes.ModelPackagingJobMetadata]` -/// - Returns: `[LookoutVisionClientTypes.ModelPackagingJobMetadata]` extension PaginatorSequence where Input == ListModelPackagingJobsInput, Output == ListModelPackagingJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelPackagingJobsPaginated` + /// to access the nested member `[LookoutVisionClientTypes.ModelPackagingJobMetadata]` + /// - Returns: `[LookoutVisionClientTypes.ModelPackagingJobMetadata]` public func modelPackagingJobs() async throws -> [LookoutVisionClientTypes.ModelPackagingJobMetadata] { return try await self.asyncCompactMap { item in item.modelPackagingJobs } } } - -/// Paginate over `[ListModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` extension LookoutVisionClient { + /// Paginate over `[ListModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` public func listModelsPaginated(input: ListModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelsInput.nextToken, outputKey: \ListModelsOutputResponse.nextToken, paginationFunction: self.listModels(input:)) } @@ -96,24 +93,23 @@ extension ListModelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelsPaginated` -/// to access the nested member `[LookoutVisionClientTypes.ModelMetadata]` -/// - Returns: `[LookoutVisionClientTypes.ModelMetadata]` extension PaginatorSequence where Input == ListModelsInput, Output == ListModelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelsPaginated` + /// to access the nested member `[LookoutVisionClientTypes.ModelMetadata]` + /// - Returns: `[LookoutVisionClientTypes.ModelMetadata]` public func models() async throws -> [LookoutVisionClientTypes.ModelMetadata] { return try await self.asyncCompactMap { item in item.models } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension LookoutVisionClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -127,10 +123,10 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` -/// to access the nested member `[LookoutVisionClientTypes.ProjectMetadata]` -/// - Returns: `[LookoutVisionClientTypes.ProjectMetadata]` extension PaginatorSequence where Input == ListProjectsInput, Output == ListProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectsPaginated` + /// to access the nested member `[LookoutVisionClientTypes.ProjectMetadata]` + /// - Returns: `[LookoutVisionClientTypes.ProjectMetadata]` public func projects() async throws -> [LookoutVisionClientTypes.ProjectMetadata] { return try await self.asyncCompactMap { item in item.projects } } diff --git a/Sources/Services/AWSM2/Paginators.swift b/Sources/Services/AWSM2/Paginators.swift index ea7b46ac546..40d91a8c3ce 100644 --- a/Sources/Services/AWSM2/Paginators.swift +++ b/Sources/Services/AWSM2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEngineVersionsOutputResponse` extension M2Client { + /// Paginate over `[ListEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEngineVersionsOutputResponse` public func listEngineVersionsPaginated(input: ListEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEngineVersionsInput.nextToken, outputKey: \ListEngineVersionsOutputResponse.nextToken, paginationFunction: self.listEngineVersions(input:)) } @@ -26,10 +25,10 @@ extension ListEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEngineVersionsPaginated` -/// to access the nested member `[M2ClientTypes.EngineVersionsSummary]` -/// - Returns: `[M2ClientTypes.EngineVersionsSummary]` extension PaginatorSequence where Input == ListEngineVersionsInput, Output == ListEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEngineVersionsPaginated` + /// to access the nested member `[M2ClientTypes.EngineVersionsSummary]` + /// - Returns: `[M2ClientTypes.EngineVersionsSummary]` public func engineVersions() async throws -> [M2ClientTypes.EngineVersionsSummary] { return try await self.asyncCompactMap { item in item.engineVersions } } diff --git a/Sources/Services/AWSMTurk/Paginators.swift b/Sources/Services/AWSMTurk/Paginators.swift index 9ccb9b40316..271118d74b4 100644 --- a/Sources/Services/AWSMTurk/Paginators.swift +++ b/Sources/Services/AWSMTurk/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAssignmentsForHITOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssignmentsForHITInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssignmentsForHITOutputResponse` extension MTurkClient { + /// Paginate over `[ListAssignmentsForHITOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssignmentsForHITInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssignmentsForHITOutputResponse` public func listAssignmentsForHITPaginated(input: ListAssignmentsForHITInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssignmentsForHITInput.nextToken, outputKey: \ListAssignmentsForHITOutputResponse.nextToken, paginationFunction: self.listAssignmentsForHIT(input:)) } @@ -26,16 +25,15 @@ extension ListAssignmentsForHITInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListBonusPaymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBonusPaymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBonusPaymentsOutputResponse` extension MTurkClient { + /// Paginate over `[ListBonusPaymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBonusPaymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBonusPaymentsOutputResponse` public func listBonusPaymentsPaginated(input: ListBonusPaymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBonusPaymentsInput.nextToken, outputKey: \ListBonusPaymentsOutputResponse.nextToken, paginationFunction: self.listBonusPayments(input:)) } @@ -50,16 +48,15 @@ extension ListBonusPaymentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListHITsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHITsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHITsOutputResponse` extension MTurkClient { + /// Paginate over `[ListHITsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHITsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHITsOutputResponse` public func listHITsPaginated(input: ListHITsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHITsInput.nextToken, outputKey: \ListHITsOutputResponse.nextToken, paginationFunction: self.listHITs(input:)) } @@ -72,16 +69,15 @@ extension ListHITsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListHITsForQualificationTypeOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHITsForQualificationTypeInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHITsForQualificationTypeOutputResponse` extension MTurkClient { + /// Paginate over `[ListHITsForQualificationTypeOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHITsForQualificationTypeInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHITsForQualificationTypeOutputResponse` public func listHITsForQualificationTypePaginated(input: ListHITsForQualificationTypeInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHITsForQualificationTypeInput.nextToken, outputKey: \ListHITsForQualificationTypeOutputResponse.nextToken, paginationFunction: self.listHITsForQualificationType(input:)) } @@ -95,16 +91,15 @@ extension ListHITsForQualificationTypeInput: ClientRuntime.PaginateToken { qualificationTypeId: self.qualificationTypeId )} } - -/// Paginate over `[ListQualificationRequestsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQualificationRequestsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQualificationRequestsOutputResponse` extension MTurkClient { + /// Paginate over `[ListQualificationRequestsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQualificationRequestsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQualificationRequestsOutputResponse` public func listQualificationRequestsPaginated(input: ListQualificationRequestsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQualificationRequestsInput.nextToken, outputKey: \ListQualificationRequestsOutputResponse.nextToken, paginationFunction: self.listQualificationRequests(input:)) } @@ -118,16 +113,15 @@ extension ListQualificationRequestsInput: ClientRuntime.PaginateToken { qualificationTypeId: self.qualificationTypeId )} } - -/// Paginate over `[ListQualificationTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQualificationTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQualificationTypesOutputResponse` extension MTurkClient { + /// Paginate over `[ListQualificationTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQualificationTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQualificationTypesOutputResponse` public func listQualificationTypesPaginated(input: ListQualificationTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQualificationTypesInput.nextToken, outputKey: \ListQualificationTypesOutputResponse.nextToken, paginationFunction: self.listQualificationTypes(input:)) } @@ -143,16 +137,15 @@ extension ListQualificationTypesInput: ClientRuntime.PaginateToken { query: self.query )} } - -/// Paginate over `[ListReviewableHITsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReviewableHITsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReviewableHITsOutputResponse` extension MTurkClient { + /// Paginate over `[ListReviewableHITsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReviewableHITsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReviewableHITsOutputResponse` public func listReviewableHITsPaginated(input: ListReviewableHITsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReviewableHITsInput.nextToken, outputKey: \ListReviewableHITsOutputResponse.nextToken, paginationFunction: self.listReviewableHITs(input:)) } @@ -167,16 +160,15 @@ extension ListReviewableHITsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListReviewPolicyResultsForHITOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReviewPolicyResultsForHITInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReviewPolicyResultsForHITOutputResponse` extension MTurkClient { + /// Paginate over `[ListReviewPolicyResultsForHITOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReviewPolicyResultsForHITInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReviewPolicyResultsForHITOutputResponse` public func listReviewPolicyResultsForHITPaginated(input: ListReviewPolicyResultsForHITInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReviewPolicyResultsForHITInput.nextToken, outputKey: \ListReviewPolicyResultsForHITOutputResponse.nextToken, paginationFunction: self.listReviewPolicyResultsForHIT(input:)) } @@ -193,16 +185,15 @@ extension ListReviewPolicyResultsForHITInput: ClientRuntime.PaginateToken { retrieveResults: self.retrieveResults )} } - -/// Paginate over `[ListWorkerBlocksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkerBlocksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkerBlocksOutputResponse` extension MTurkClient { + /// Paginate over `[ListWorkerBlocksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkerBlocksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkerBlocksOutputResponse` public func listWorkerBlocksPaginated(input: ListWorkerBlocksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkerBlocksInput.nextToken, outputKey: \ListWorkerBlocksOutputResponse.nextToken, paginationFunction: self.listWorkerBlocks(input:)) } @@ -215,16 +206,15 @@ extension ListWorkerBlocksInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWorkersWithQualificationTypeOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkersWithQualificationTypeInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkersWithQualificationTypeOutputResponse` extension MTurkClient { + /// Paginate over `[ListWorkersWithQualificationTypeOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkersWithQualificationTypeInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkersWithQualificationTypeOutputResponse` public func listWorkersWithQualificationTypePaginated(input: ListWorkersWithQualificationTypeInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkersWithQualificationTypeInput.nextToken, outputKey: \ListWorkersWithQualificationTypeOutputResponse.nextToken, paginationFunction: self.listWorkersWithQualificationType(input:)) } diff --git a/Sources/Services/AWSMWAA/EndpointResolver.swift b/Sources/Services/AWSMWAA/EndpointResolver.swift index 1c208a83238..fdab26bc441 100644 --- a/Sources/Services/AWSMWAA/EndpointResolver.swift +++ b/Sources/Services/AWSMWAA/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://airflow.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSMWAA/MWAAClient.swift b/Sources/Services/AWSMWAA/MWAAClient.swift index 9c789d427a9..aa1f32e1856 100644 --- a/Sources/Services/AWSMWAA/MWAAClient.swift +++ b/Sources/Services/AWSMWAA/MWAAClient.swift @@ -224,7 +224,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createCliToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "env.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -256,7 +259,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -291,7 +297,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "createWebLoginToken") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "env.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -323,7 +332,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -355,7 +367,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "getEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -387,7 +402,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "listEnvironments") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -420,7 +438,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -452,7 +473,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "publishMetrics") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "ops.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -487,7 +511,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -522,7 +549,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -555,7 +585,10 @@ extension MWAAClient: MWAAClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateEnvironment") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(hostPrefix: "api.")) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSMWAA/MWAAClientProtocol.swift b/Sources/Services/AWSMWAA/MWAAClientProtocol.swift index a66025f79b8..28806905cef 100644 --- a/Sources/Services/AWSMWAA/MWAAClientProtocol.swift +++ b/Sources/Services/AWSMWAA/MWAAClientProtocol.swift @@ -35,9 +35,6 @@ import ClientRuntime /// /// /// -/// -/// -/// /// * ops.airflow.{region}.amazonaws.com - This endpoint is used to push environment metrics that track environment health. /// /// * [PublishMetrics](https://docs.aws.amazon.com/mwaa/latest/API/API_PublishMetrics.html) diff --git a/Sources/Services/AWSMWAA/Paginators.swift b/Sources/Services/AWSMWAA/Paginators.swift index 54636592ca7..5e6f986fb23 100644 --- a/Sources/Services/AWSMWAA/Paginators.swift +++ b/Sources/Services/AWSMWAA/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEnvironmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnvironmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` extension MWAAClient { + /// Paginate over `[ListEnvironmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnvironmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` public func listEnvironmentsPaginated(input: ListEnvironmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnvironmentsInput.nextToken, outputKey: \ListEnvironmentsOutputResponse.nextToken, paginationFunction: self.listEnvironments(input:)) } @@ -25,10 +24,10 @@ extension ListEnvironmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEnvironmentsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListEnvironmentsInput, Output == ListEnvironmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEnvironmentsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func environments() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.environments } } diff --git a/Sources/Services/AWSMWAA/models/Models.swift b/Sources/Services/AWSMWAA/models/Models.swift index 927de35fa5a..b50579dbf7c 100644 --- a/Sources/Services/AWSMWAA/models/Models.swift +++ b/Sources/Services/AWSMWAA/models/Models.swift @@ -272,7 +272,7 @@ extension CreateEnvironmentInput: ClientRuntime.URLPathProvider { public struct CreateEnvironmentInput: Swift.Equatable { /// A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String:Swift.String]? - /// The Apache Airflow version for your environment. If no value is specified, it defaults to the latest version. Valid values: 1.10.12, 2.0.2, and 2.2.2. To learn more, see [Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html). + /// The Apache Airflow version for your environment. If no value is specified, it defaults to the latest version. Valid values: 1.10.12, 2.0.2, 2.2.2, and 2.4.3. For more information, see [Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html). public var airflowVersion: Swift.String? /// The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. To learn more, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html). /// This member is required. @@ -969,7 +969,7 @@ extension MWAAClientTypes { public struct Environment: Swift.Equatable { /// A list of key-value pairs containing the Apache Airflow configuration options attached to your environment. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String:Swift.String]? - /// The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2, and 2.2.2. + /// The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2, 2.2.2, and 2.4.3. public var airflowVersion: Swift.String? /// The Amazon Resource Name (ARN) of the Amazon MWAA environment. public var arn: Swift.String? @@ -2681,7 +2681,7 @@ extension UpdateEnvironmentInput: ClientRuntime.URLPathProvider { public struct UpdateEnvironmentInput: Swift.Equatable { /// A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html). public var airflowConfigurationOptions: [Swift.String:Swift.String]? - /// The Apache Airflow version for your environment. If no value is specified, defaults to the latest version. Valid values: 1.10.12, 2.0.2, and 2.2.2. + /// The Apache Airflow version for your environment. If no value is specified, defaults to the latest version. Valid values: 1.10.12, 2.0.2, 2.2.2, and 2.4.3. public var airflowVersion: Swift.String? /// The relative path to the DAGs folder on your Amazon S3 bucket. For example, dags. To learn more, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html). public var dagS3Path: Swift.String? diff --git a/Sources/Services/AWSMachineLearning/Paginators.swift b/Sources/Services/AWSMachineLearning/Paginators.swift index 28d842fdf17..25c61bf7ddb 100644 --- a/Sources/Services/AWSMachineLearning/Paginators.swift +++ b/Sources/Services/AWSMachineLearning/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBatchPredictionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBatchPredictionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBatchPredictionsOutputResponse` extension MachineLearningClient { + /// Paginate over `[DescribeBatchPredictionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBatchPredictionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBatchPredictionsOutputResponse` public func describeBatchPredictionsPaginated(input: DescribeBatchPredictionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBatchPredictionsInput.nextToken, outputKey: \DescribeBatchPredictionsOutputResponse.nextToken, paginationFunction: self.describeBatchPredictions(input:)) } @@ -34,24 +33,23 @@ extension DescribeBatchPredictionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBatchPredictionsPaginated` -/// to access the nested member `[MachineLearningClientTypes.BatchPrediction]` -/// - Returns: `[MachineLearningClientTypes.BatchPrediction]` extension PaginatorSequence where Input == DescribeBatchPredictionsInput, Output == DescribeBatchPredictionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBatchPredictionsPaginated` + /// to access the nested member `[MachineLearningClientTypes.BatchPrediction]` + /// - Returns: `[MachineLearningClientTypes.BatchPrediction]` public func results() async throws -> [MachineLearningClientTypes.BatchPrediction] { return try await self.asyncCompactMap { item in item.results } } } - -/// Paginate over `[DescribeDataSourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataSourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSourcesOutputResponse` extension MachineLearningClient { + /// Paginate over `[DescribeDataSourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataSourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSourcesOutputResponse` public func describeDataSourcesPaginated(input: DescribeDataSourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataSourcesInput.nextToken, outputKey: \DescribeDataSourcesOutputResponse.nextToken, paginationFunction: self.describeDataSources(input:)) } @@ -74,24 +72,23 @@ extension DescribeDataSourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDataSourcesPaginated` -/// to access the nested member `[MachineLearningClientTypes.DataSource]` -/// - Returns: `[MachineLearningClientTypes.DataSource]` extension PaginatorSequence where Input == DescribeDataSourcesInput, Output == DescribeDataSourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDataSourcesPaginated` + /// to access the nested member `[MachineLearningClientTypes.DataSource]` + /// - Returns: `[MachineLearningClientTypes.DataSource]` public func results() async throws -> [MachineLearningClientTypes.DataSource] { return try await self.asyncCompactMap { item in item.results } } } - -/// Paginate over `[DescribeEvaluationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEvaluationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEvaluationsOutputResponse` extension MachineLearningClient { + /// Paginate over `[DescribeEvaluationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEvaluationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEvaluationsOutputResponse` public func describeEvaluationsPaginated(input: DescribeEvaluationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEvaluationsInput.nextToken, outputKey: \DescribeEvaluationsOutputResponse.nextToken, paginationFunction: self.describeEvaluations(input:)) } @@ -114,24 +111,23 @@ extension DescribeEvaluationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEvaluationsPaginated` -/// to access the nested member `[MachineLearningClientTypes.Evaluation]` -/// - Returns: `[MachineLearningClientTypes.Evaluation]` extension PaginatorSequence where Input == DescribeEvaluationsInput, Output == DescribeEvaluationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEvaluationsPaginated` + /// to access the nested member `[MachineLearningClientTypes.Evaluation]` + /// - Returns: `[MachineLearningClientTypes.Evaluation]` public func results() async throws -> [MachineLearningClientTypes.Evaluation] { return try await self.asyncCompactMap { item in item.results } } } - -/// Paginate over `[DescribeMLModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMLModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMLModelsOutputResponse` extension MachineLearningClient { + /// Paginate over `[DescribeMLModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMLModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMLModelsOutputResponse` public func describeMLModelsPaginated(input: DescribeMLModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMLModelsInput.nextToken, outputKey: \DescribeMLModelsOutputResponse.nextToken, paginationFunction: self.describeMLModels(input:)) } @@ -154,10 +150,10 @@ extension DescribeMLModelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMLModelsPaginated` -/// to access the nested member `[MachineLearningClientTypes.MLModel]` -/// - Returns: `[MachineLearningClientTypes.MLModel]` extension PaginatorSequence where Input == DescribeMLModelsInput, Output == DescribeMLModelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMLModelsPaginated` + /// to access the nested member `[MachineLearningClientTypes.MLModel]` + /// - Returns: `[MachineLearningClientTypes.MLModel]` public func results() async throws -> [MachineLearningClientTypes.MLModel] { return try await self.asyncCompactMap { item in item.results } } diff --git a/Sources/Services/AWSMacie/Paginators.swift b/Sources/Services/AWSMacie/Paginators.swift index 13d915c911b..cecc77b4023 100644 --- a/Sources/Services/AWSMacie/Paginators.swift +++ b/Sources/Services/AWSMacie/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListMemberAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMemberAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMemberAccountsOutputResponse` extension MacieClient { + /// Paginate over `[ListMemberAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMemberAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMemberAccountsOutputResponse` public func listMemberAccountsPaginated(input: ListMemberAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMemberAccountsInput.nextToken, outputKey: \ListMemberAccountsOutputResponse.nextToken, paginationFunction: self.listMemberAccounts(input:)) } @@ -24,16 +23,15 @@ extension ListMemberAccountsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListS3ResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListS3ResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListS3ResourcesOutputResponse` extension MacieClient { + /// Paginate over `[ListS3ResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListS3ResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListS3ResourcesOutputResponse` public func listS3ResourcesPaginated(input: ListS3ResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListS3ResourcesInput.nextToken, outputKey: \ListS3ResourcesOutputResponse.nextToken, paginationFunction: self.listS3Resources(input:)) } diff --git a/Sources/Services/AWSMacie2/Paginators.swift b/Sources/Services/AWSMacie2/Paginators.swift index f46f51a4df8..b107e46f8b1 100644 --- a/Sources/Services/AWSMacie2/Paginators.swift +++ b/Sources/Services/AWSMacie2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBucketsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBucketsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBucketsOutputResponse` extension Macie2Client { + /// Paginate over `[DescribeBucketsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBucketsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBucketsOutputResponse` public func describeBucketsPaginated(input: DescribeBucketsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBucketsInput.nextToken, outputKey: \DescribeBucketsOutputResponse.nextToken, paginationFunction: self.describeBuckets(input:)) } @@ -27,24 +26,23 @@ extension DescribeBucketsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBucketsPaginated` -/// to access the nested member `[Macie2ClientTypes.BucketMetadata]` -/// - Returns: `[Macie2ClientTypes.BucketMetadata]` extension PaginatorSequence where Input == DescribeBucketsInput, Output == DescribeBucketsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBucketsPaginated` + /// to access the nested member `[Macie2ClientTypes.BucketMetadata]` + /// - Returns: `[Macie2ClientTypes.BucketMetadata]` public func buckets() async throws -> [Macie2ClientTypes.BucketMetadata] { return try await self.asyncCompactMap { item in item.buckets } } } - -/// Paginate over `[GetUsageStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUsageStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUsageStatisticsOutputResponse` extension Macie2Client { + /// Paginate over `[GetUsageStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUsageStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUsageStatisticsOutputResponse` public func getUsageStatisticsPaginated(input: GetUsageStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUsageStatisticsInput.nextToken, outputKey: \GetUsageStatisticsOutputResponse.nextToken, paginationFunction: self.getUsageStatistics(input:)) } @@ -61,24 +59,23 @@ extension GetUsageStatisticsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getUsageStatisticsPaginated` -/// to access the nested member `[Macie2ClientTypes.UsageRecord]` -/// - Returns: `[Macie2ClientTypes.UsageRecord]` extension PaginatorSequence where Input == GetUsageStatisticsInput, Output == GetUsageStatisticsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getUsageStatisticsPaginated` + /// to access the nested member `[Macie2ClientTypes.UsageRecord]` + /// - Returns: `[Macie2ClientTypes.UsageRecord]` public func records() async throws -> [Macie2ClientTypes.UsageRecord] { return try await self.asyncCompactMap { item in item.records } } } - -/// Paginate over `[ListAllowListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAllowListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAllowListsOutputResponse` extension Macie2Client { + /// Paginate over `[ListAllowListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAllowListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAllowListsOutputResponse` public func listAllowListsPaginated(input: ListAllowListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAllowListsInput.nextToken, outputKey: \ListAllowListsOutputResponse.nextToken, paginationFunction: self.listAllowLists(input:)) } @@ -92,24 +89,23 @@ extension ListAllowListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAllowListsPaginated` -/// to access the nested member `[Macie2ClientTypes.AllowListSummary]` -/// - Returns: `[Macie2ClientTypes.AllowListSummary]` extension PaginatorSequence where Input == ListAllowListsInput, Output == ListAllowListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAllowListsPaginated` + /// to access the nested member `[Macie2ClientTypes.AllowListSummary]` + /// - Returns: `[Macie2ClientTypes.AllowListSummary]` public func allowLists() async throws -> [Macie2ClientTypes.AllowListSummary] { return try await self.asyncCompactMap { item in item.allowLists } } } - -/// Paginate over `[ListClassificationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClassificationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClassificationJobsOutputResponse` extension Macie2Client { + /// Paginate over `[ListClassificationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClassificationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClassificationJobsOutputResponse` public func listClassificationJobsPaginated(input: ListClassificationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClassificationJobsInput.nextToken, outputKey: \ListClassificationJobsOutputResponse.nextToken, paginationFunction: self.listClassificationJobs(input:)) } @@ -125,24 +121,23 @@ extension ListClassificationJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClassificationJobsPaginated` -/// to access the nested member `[Macie2ClientTypes.JobSummary]` -/// - Returns: `[Macie2ClientTypes.JobSummary]` extension PaginatorSequence where Input == ListClassificationJobsInput, Output == ListClassificationJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClassificationJobsPaginated` + /// to access the nested member `[Macie2ClientTypes.JobSummary]` + /// - Returns: `[Macie2ClientTypes.JobSummary]` public func items() async throws -> [Macie2ClientTypes.JobSummary] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListClassificationScopesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClassificationScopesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClassificationScopesOutputResponse` extension Macie2Client { + /// Paginate over `[ListClassificationScopesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClassificationScopesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClassificationScopesOutputResponse` public func listClassificationScopesPaginated(input: ListClassificationScopesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClassificationScopesInput.nextToken, outputKey: \ListClassificationScopesOutputResponse.nextToken, paginationFunction: self.listClassificationScopes(input:)) } @@ -156,24 +151,23 @@ extension ListClassificationScopesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClassificationScopesPaginated` -/// to access the nested member `[Macie2ClientTypes.ClassificationScopeSummary]` -/// - Returns: `[Macie2ClientTypes.ClassificationScopeSummary]` extension PaginatorSequence where Input == ListClassificationScopesInput, Output == ListClassificationScopesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClassificationScopesPaginated` + /// to access the nested member `[Macie2ClientTypes.ClassificationScopeSummary]` + /// - Returns: `[Macie2ClientTypes.ClassificationScopeSummary]` public func classificationScopes() async throws -> [Macie2ClientTypes.ClassificationScopeSummary] { return try await self.asyncCompactMap { item in item.classificationScopes } } } - -/// Paginate over `[ListCustomDataIdentifiersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomDataIdentifiersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomDataIdentifiersOutputResponse` extension Macie2Client { + /// Paginate over `[ListCustomDataIdentifiersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomDataIdentifiersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomDataIdentifiersOutputResponse` public func listCustomDataIdentifiersPaginated(input: ListCustomDataIdentifiersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomDataIdentifiersInput.nextToken, outputKey: \ListCustomDataIdentifiersOutputResponse.nextToken, paginationFunction: self.listCustomDataIdentifiers(input:)) } @@ -187,24 +181,23 @@ extension ListCustomDataIdentifiersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomDataIdentifiersPaginated` -/// to access the nested member `[Macie2ClientTypes.CustomDataIdentifierSummary]` -/// - Returns: `[Macie2ClientTypes.CustomDataIdentifierSummary]` extension PaginatorSequence where Input == ListCustomDataIdentifiersInput, Output == ListCustomDataIdentifiersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomDataIdentifiersPaginated` + /// to access the nested member `[Macie2ClientTypes.CustomDataIdentifierSummary]` + /// - Returns: `[Macie2ClientTypes.CustomDataIdentifierSummary]` public func items() async throws -> [Macie2ClientTypes.CustomDataIdentifierSummary] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` extension Macie2Client { + /// Paginate over `[ListFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsOutputResponse` public func listFindingsPaginated(input: ListFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsInput.nextToken, outputKey: \ListFindingsOutputResponse.nextToken, paginationFunction: self.listFindings(input:)) } @@ -220,24 +213,23 @@ extension ListFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListFindingsInput, Output == ListFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func findingIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.findingIds } } } - -/// Paginate over `[ListFindingsFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingsFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingsFiltersOutputResponse` extension Macie2Client { + /// Paginate over `[ListFindingsFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingsFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingsFiltersOutputResponse` public func listFindingsFiltersPaginated(input: ListFindingsFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingsFiltersInput.nextToken, outputKey: \ListFindingsFiltersOutputResponse.nextToken, paginationFunction: self.listFindingsFilters(input:)) } @@ -251,24 +243,23 @@ extension ListFindingsFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingsFiltersPaginated` -/// to access the nested member `[Macie2ClientTypes.FindingsFilterListItem]` -/// - Returns: `[Macie2ClientTypes.FindingsFilterListItem]` extension PaginatorSequence where Input == ListFindingsFiltersInput, Output == ListFindingsFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingsFiltersPaginated` + /// to access the nested member `[Macie2ClientTypes.FindingsFilterListItem]` + /// - Returns: `[Macie2ClientTypes.FindingsFilterListItem]` public func findingsFilterListItems() async throws -> [Macie2ClientTypes.FindingsFilterListItem] { return try await self.asyncCompactMap { item in item.findingsFilterListItems } } } - -/// Paginate over `[ListInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` extension Macie2Client { + /// Paginate over `[ListInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` public func listInvitationsPaginated(input: ListInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvitationsInput.nextToken, outputKey: \ListInvitationsOutputResponse.nextToken, paginationFunction: self.listInvitations(input:)) } @@ -282,24 +273,23 @@ extension ListInvitationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` -/// to access the nested member `[Macie2ClientTypes.Invitation]` -/// - Returns: `[Macie2ClientTypes.Invitation]` extension PaginatorSequence where Input == ListInvitationsInput, Output == ListInvitationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` + /// to access the nested member `[Macie2ClientTypes.Invitation]` + /// - Returns: `[Macie2ClientTypes.Invitation]` public func invitations() async throws -> [Macie2ClientTypes.Invitation] { return try await self.asyncCompactMap { item in item.invitations } } } - -/// Paginate over `[ListManagedDataIdentifiersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListManagedDataIdentifiersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListManagedDataIdentifiersOutputResponse` extension Macie2Client { + /// Paginate over `[ListManagedDataIdentifiersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedDataIdentifiersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedDataIdentifiersOutputResponse` public func listManagedDataIdentifiersPaginated(input: ListManagedDataIdentifiersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedDataIdentifiersInput.nextToken, outputKey: \ListManagedDataIdentifiersOutputResponse.nextToken, paginationFunction: self.listManagedDataIdentifiers(input:)) } @@ -312,24 +302,23 @@ extension ListManagedDataIdentifiersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listManagedDataIdentifiersPaginated` -/// to access the nested member `[Macie2ClientTypes.ManagedDataIdentifierSummary]` -/// - Returns: `[Macie2ClientTypes.ManagedDataIdentifierSummary]` extension PaginatorSequence where Input == ListManagedDataIdentifiersInput, Output == ListManagedDataIdentifiersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listManagedDataIdentifiersPaginated` + /// to access the nested member `[Macie2ClientTypes.ManagedDataIdentifierSummary]` + /// - Returns: `[Macie2ClientTypes.ManagedDataIdentifierSummary]` public func items() async throws -> [Macie2ClientTypes.ManagedDataIdentifierSummary] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension Macie2Client { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -344,24 +333,23 @@ extension ListMembersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` -/// to access the nested member `[Macie2ClientTypes.Member]` -/// - Returns: `[Macie2ClientTypes.Member]` extension PaginatorSequence where Input == ListMembersInput, Output == ListMembersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` + /// to access the nested member `[Macie2ClientTypes.Member]` + /// - Returns: `[Macie2ClientTypes.Member]` public func members() async throws -> [Macie2ClientTypes.Member] { return try await self.asyncCompactMap { item in item.members } } } - -/// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` extension Macie2Client { + /// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` public func listOrganizationAdminAccountsPaginated(input: ListOrganizationAdminAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationAdminAccountsInput.nextToken, outputKey: \ListOrganizationAdminAccountsOutputResponse.nextToken, paginationFunction: self.listOrganizationAdminAccounts(input:)) } @@ -375,24 +363,23 @@ extension ListOrganizationAdminAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` -/// to access the nested member `[Macie2ClientTypes.AdminAccount]` -/// - Returns: `[Macie2ClientTypes.AdminAccount]` extension PaginatorSequence where Input == ListOrganizationAdminAccountsInput, Output == ListOrganizationAdminAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` + /// to access the nested member `[Macie2ClientTypes.AdminAccount]` + /// - Returns: `[Macie2ClientTypes.AdminAccount]` public func adminAccounts() async throws -> [Macie2ClientTypes.AdminAccount] { return try await self.asyncCompactMap { item in item.adminAccounts } } } - -/// Paginate over `[ListResourceProfileArtifactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceProfileArtifactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceProfileArtifactsOutputResponse` extension Macie2Client { + /// Paginate over `[ListResourceProfileArtifactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceProfileArtifactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceProfileArtifactsOutputResponse` public func listResourceProfileArtifactsPaginated(input: ListResourceProfileArtifactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceProfileArtifactsInput.nextToken, outputKey: \ListResourceProfileArtifactsOutputResponse.nextToken, paginationFunction: self.listResourceProfileArtifacts(input:)) } @@ -406,24 +393,23 @@ extension ListResourceProfileArtifactsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceProfileArtifactsPaginated` -/// to access the nested member `[Macie2ClientTypes.ResourceProfileArtifact]` -/// - Returns: `[Macie2ClientTypes.ResourceProfileArtifact]` extension PaginatorSequence where Input == ListResourceProfileArtifactsInput, Output == ListResourceProfileArtifactsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceProfileArtifactsPaginated` + /// to access the nested member `[Macie2ClientTypes.ResourceProfileArtifact]` + /// - Returns: `[Macie2ClientTypes.ResourceProfileArtifact]` public func artifacts() async throws -> [Macie2ClientTypes.ResourceProfileArtifact] { return try await self.asyncCompactMap { item in item.artifacts } } } - -/// Paginate over `[ListResourceProfileDetectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceProfileDetectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceProfileDetectionsOutputResponse` extension Macie2Client { + /// Paginate over `[ListResourceProfileDetectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceProfileDetectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceProfileDetectionsOutputResponse` public func listResourceProfileDetectionsPaginated(input: ListResourceProfileDetectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceProfileDetectionsInput.nextToken, outputKey: \ListResourceProfileDetectionsOutputResponse.nextToken, paginationFunction: self.listResourceProfileDetections(input:)) } @@ -438,24 +424,23 @@ extension ListResourceProfileDetectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceProfileDetectionsPaginated` -/// to access the nested member `[Macie2ClientTypes.Detection]` -/// - Returns: `[Macie2ClientTypes.Detection]` extension PaginatorSequence where Input == ListResourceProfileDetectionsInput, Output == ListResourceProfileDetectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceProfileDetectionsPaginated` + /// to access the nested member `[Macie2ClientTypes.Detection]` + /// - Returns: `[Macie2ClientTypes.Detection]` public func detections() async throws -> [Macie2ClientTypes.Detection] { return try await self.asyncCompactMap { item in item.detections } } } - -/// Paginate over `[ListSensitivityInspectionTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSensitivityInspectionTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSensitivityInspectionTemplatesOutputResponse` extension Macie2Client { + /// Paginate over `[ListSensitivityInspectionTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSensitivityInspectionTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSensitivityInspectionTemplatesOutputResponse` public func listSensitivityInspectionTemplatesPaginated(input: ListSensitivityInspectionTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSensitivityInspectionTemplatesInput.nextToken, outputKey: \ListSensitivityInspectionTemplatesOutputResponse.nextToken, paginationFunction: self.listSensitivityInspectionTemplates(input:)) } @@ -469,24 +454,23 @@ extension ListSensitivityInspectionTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSensitivityInspectionTemplatesPaginated` -/// to access the nested member `[Macie2ClientTypes.SensitivityInspectionTemplatesEntry]` -/// - Returns: `[Macie2ClientTypes.SensitivityInspectionTemplatesEntry]` extension PaginatorSequence where Input == ListSensitivityInspectionTemplatesInput, Output == ListSensitivityInspectionTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSensitivityInspectionTemplatesPaginated` + /// to access the nested member `[Macie2ClientTypes.SensitivityInspectionTemplatesEntry]` + /// - Returns: `[Macie2ClientTypes.SensitivityInspectionTemplatesEntry]` public func sensitivityInspectionTemplates() async throws -> [Macie2ClientTypes.SensitivityInspectionTemplatesEntry] { return try await self.asyncCompactMap { item in item.sensitivityInspectionTemplates } } } - -/// Paginate over `[SearchResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchResourcesOutputResponse` extension Macie2Client { + /// Paginate over `[SearchResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchResourcesOutputResponse` public func searchResourcesPaginated(input: SearchResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchResourcesInput.nextToken, outputKey: \SearchResourcesOutputResponse.nextToken, paginationFunction: self.searchResources(input:)) } @@ -502,10 +486,10 @@ extension SearchResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchResourcesPaginated` -/// to access the nested member `[Macie2ClientTypes.MatchingResource]` -/// - Returns: `[Macie2ClientTypes.MatchingResource]` extension PaginatorSequence where Input == SearchResourcesInput, Output == SearchResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchResourcesPaginated` + /// to access the nested member `[Macie2ClientTypes.MatchingResource]` + /// - Returns: `[Macie2ClientTypes.MatchingResource]` public func matchingResources() async throws -> [Macie2ClientTypes.MatchingResource] { return try await self.asyncCompactMap { item in item.matchingResources } } diff --git a/Sources/Services/AWSManagedBlockchain/Paginators.swift b/Sources/Services/AWSManagedBlockchain/Paginators.swift index 14feb4e2460..42143882a46 100644 --- a/Sources/Services/AWSManagedBlockchain/Paginators.swift +++ b/Sources/Services/AWSManagedBlockchain/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccessorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessorsOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListAccessorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessorsOutputResponse` public func listAccessorsPaginated(input: ListAccessorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessorsInput.nextToken, outputKey: \ListAccessorsOutputResponse.nextToken, paginationFunction: self.listAccessors(input:)) } @@ -25,24 +24,23 @@ extension ListAccessorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessorsPaginated` -/// to access the nested member `[ManagedBlockchainClientTypes.AccessorSummary]` -/// - Returns: `[ManagedBlockchainClientTypes.AccessorSummary]` extension PaginatorSequence where Input == ListAccessorsInput, Output == ListAccessorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessorsPaginated` + /// to access the nested member `[ManagedBlockchainClientTypes.AccessorSummary]` + /// - Returns: `[ManagedBlockchainClientTypes.AccessorSummary]` public func accessors() async throws -> [ManagedBlockchainClientTypes.AccessorSummary] { return try await self.asyncCompactMap { item in item.accessors } } } - -/// Paginate over `[ListInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` public func listInvitationsPaginated(input: ListInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvitationsInput.nextToken, outputKey: \ListInvitationsOutputResponse.nextToken, paginationFunction: self.listInvitations(input:)) } @@ -55,16 +53,15 @@ extension ListInvitationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -81,16 +78,15 @@ extension ListMembersInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListNetworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworksOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListNetworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworksOutputResponse` public func listNetworksPaginated(input: ListNetworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworksInput.nextToken, outputKey: \ListNetworksOutputResponse.nextToken, paginationFunction: self.listNetworks(input:)) } @@ -106,16 +102,15 @@ extension ListNetworksInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` public func listNodesPaginated(input: ListNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNodesInput.nextToken, outputKey: \ListNodesOutputResponse.nextToken, paginationFunction: self.listNodes(input:)) } @@ -131,16 +126,15 @@ extension ListNodesInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListProposalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProposalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProposalsOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListProposalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProposalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProposalsOutputResponse` public func listProposalsPaginated(input: ListProposalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProposalsInput.nextToken, outputKey: \ListProposalsOutputResponse.nextToken, paginationFunction: self.listProposals(input:)) } @@ -154,16 +148,15 @@ extension ListProposalsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListProposalVotesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProposalVotesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProposalVotesOutputResponse` extension ManagedBlockchainClient { + /// Paginate over `[ListProposalVotesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProposalVotesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProposalVotesOutputResponse` public func listProposalVotesPaginated(input: ListProposalVotesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProposalVotesInput.nextToken, outputKey: \ListProposalVotesOutputResponse.nextToken, paginationFunction: self.listProposalVotes(input:)) } diff --git a/Sources/Services/AWSMarketplaceCatalog/Paginators.swift b/Sources/Services/AWSMarketplaceCatalog/Paginators.swift index 6c9ea7cc037..56ad7a57803 100644 --- a/Sources/Services/AWSMarketplaceCatalog/Paginators.swift +++ b/Sources/Services/AWSMarketplaceCatalog/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChangeSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChangeSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChangeSetsOutputResponse` extension MarketplaceCatalogClient { + /// Paginate over `[ListChangeSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChangeSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChangeSetsOutputResponse` public func listChangeSetsPaginated(input: ListChangeSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChangeSetsInput.nextToken, outputKey: \ListChangeSetsOutputResponse.nextToken, paginationFunction: self.listChangeSets(input:)) } @@ -27,16 +26,15 @@ extension ListChangeSetsInput: ClientRuntime.PaginateToken { sort: self.sort )} } - -/// Paginate over `[ListEntitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesOutputResponse` extension MarketplaceCatalogClient { + /// Paginate over `[ListEntitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntitiesOutputResponse` public func listEntitiesPaginated(input: ListEntitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntitiesInput.nextToken, outputKey: \ListEntitiesOutputResponse.nextToken, paginationFunction: self.listEntities(input:)) } diff --git a/Sources/Services/AWSMediaConnect/Paginators.swift b/Sources/Services/AWSMediaConnect/Paginators.swift index 8878d1e01e4..437192b8d24 100644 --- a/Sources/Services/AWSMediaConnect/Paginators.swift +++ b/Sources/Services/AWSMediaConnect/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEntitlementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEntitlementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEntitlementsOutputResponse` extension MediaConnectClient { + /// Paginate over `[ListEntitlementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEntitlementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEntitlementsOutputResponse` public func listEntitlementsPaginated(input: ListEntitlementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEntitlementsInput.nextToken, outputKey: \ListEntitlementsOutputResponse.nextToken, paginationFunction: self.listEntitlements(input:)) } @@ -25,24 +24,23 @@ extension ListEntitlementsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEntitlementsPaginated` -/// to access the nested member `[MediaConnectClientTypes.ListedEntitlement]` -/// - Returns: `[MediaConnectClientTypes.ListedEntitlement]` extension PaginatorSequence where Input == ListEntitlementsInput, Output == ListEntitlementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEntitlementsPaginated` + /// to access the nested member `[MediaConnectClientTypes.ListedEntitlement]` + /// - Returns: `[MediaConnectClientTypes.ListedEntitlement]` public func entitlements() async throws -> [MediaConnectClientTypes.ListedEntitlement] { return try await self.asyncCompactMap { item in item.entitlements } } } - -/// Paginate over `[ListFlowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFlowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFlowsOutputResponse` extension MediaConnectClient { + /// Paginate over `[ListFlowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFlowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFlowsOutputResponse` public func listFlowsPaginated(input: ListFlowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFlowsInput.nextToken, outputKey: \ListFlowsOutputResponse.nextToken, paginationFunction: self.listFlows(input:)) } @@ -56,24 +54,23 @@ extension ListFlowsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFlowsPaginated` -/// to access the nested member `[MediaConnectClientTypes.ListedFlow]` -/// - Returns: `[MediaConnectClientTypes.ListedFlow]` extension PaginatorSequence where Input == ListFlowsInput, Output == ListFlowsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFlowsPaginated` + /// to access the nested member `[MediaConnectClientTypes.ListedFlow]` + /// - Returns: `[MediaConnectClientTypes.ListedFlow]` public func flows() async throws -> [MediaConnectClientTypes.ListedFlow] { return try await self.asyncCompactMap { item in item.flows } } } - -/// Paginate over `[ListOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` extension MediaConnectClient { + /// Paginate over `[ListOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` public func listOfferingsPaginated(input: ListOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOfferingsInput.nextToken, outputKey: \ListOfferingsOutputResponse.nextToken, paginationFunction: self.listOfferings(input:)) } @@ -87,24 +84,23 @@ extension ListOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` -/// to access the nested member `[MediaConnectClientTypes.Offering]` -/// - Returns: `[MediaConnectClientTypes.Offering]` extension PaginatorSequence where Input == ListOfferingsInput, Output == ListOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` + /// to access the nested member `[MediaConnectClientTypes.Offering]` + /// - Returns: `[MediaConnectClientTypes.Offering]` public func offerings() async throws -> [MediaConnectClientTypes.Offering] { return try await self.asyncCompactMap { item in item.offerings } } } - -/// Paginate over `[ListReservationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReservationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReservationsOutputResponse` extension MediaConnectClient { + /// Paginate over `[ListReservationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReservationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReservationsOutputResponse` public func listReservationsPaginated(input: ListReservationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReservationsInput.nextToken, outputKey: \ListReservationsOutputResponse.nextToken, paginationFunction: self.listReservations(input:)) } @@ -118,10 +114,10 @@ extension ListReservationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReservationsPaginated` -/// to access the nested member `[MediaConnectClientTypes.Reservation]` -/// - Returns: `[MediaConnectClientTypes.Reservation]` extension PaginatorSequence where Input == ListReservationsInput, Output == ListReservationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReservationsPaginated` + /// to access the nested member `[MediaConnectClientTypes.Reservation]` + /// - Returns: `[MediaConnectClientTypes.Reservation]` public func reservations() async throws -> [MediaConnectClientTypes.Reservation] { return try await self.asyncCompactMap { item in item.reservations } } diff --git a/Sources/Services/AWSMediaConvert/EndpointResolver.swift b/Sources/Services/AWSMediaConvert/EndpointResolver.swift index 416d06ac3f5..8f7b7e9bd63 100644 --- a/Sources/Services/AWSMediaConvert/EndpointResolver.swift +++ b/Sources/Services/AWSMediaConvert/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"cn-northwest-1\"]}],\"endpoint\":{\"url\":\"https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"cn-northwest-1\"]}],\"endpoint\":{\"url\":\"https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://mediaconvert.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSMediaConvert/MediaConvertClient.swift b/Sources/Services/AWSMediaConvert/MediaConvertClient.swift index 7cce6a5052e..e8ce2f951d0 100644 --- a/Sources/Services/AWSMediaConvert/MediaConvertClient.swift +++ b/Sources/Services/AWSMediaConvert/MediaConvertClient.swift @@ -224,7 +224,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -259,7 +262,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "cancelJob") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -299,7 +305,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { } operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -334,7 +343,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "createJobTemplate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -369,7 +381,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "createPreset") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -404,7 +419,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "createQueue") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -439,7 +457,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteJobTemplate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -471,7 +492,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "deletePolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -503,7 +527,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "deletePreset") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -535,7 +562,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteQueue") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -567,7 +597,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "describeEndpoints") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -602,7 +635,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateCertificate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -634,7 +670,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "getJob") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -666,7 +705,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "getJobTemplate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -698,7 +740,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "getPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -730,7 +775,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "getPreset") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -762,7 +810,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "getQueue") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -794,7 +845,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "listJobTemplates") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -827,7 +881,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "listJobs") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -860,7 +917,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPresets") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -893,7 +953,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "listQueues") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -926,7 +989,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -958,7 +1024,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "putPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -993,7 +1062,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1028,7 +1100,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1063,7 +1138,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateJobTemplate") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1098,7 +1176,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "updatePreset") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1133,7 +1214,10 @@ extension MediaConvertClient: MediaConvertClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateQueue") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSMediaConvert/Paginators.swift b/Sources/Services/AWSMediaConvert/Paginators.swift index f44556eb27c..3b72fbb6484 100644 --- a/Sources/Services/AWSMediaConvert/Paginators.swift +++ b/Sources/Services/AWSMediaConvert/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointsOutputResponse` extension MediaConvertClient { + /// Paginate over `[DescribeEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointsOutputResponse` public func describeEndpointsPaginated(input: DescribeEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointsInput.nextToken, outputKey: \DescribeEndpointsOutputResponse.nextToken, paginationFunction: self.describeEndpoints(input:)) } @@ -26,24 +25,23 @@ extension DescribeEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEndpointsPaginated` -/// to access the nested member `[MediaConvertClientTypes.Endpoint]` -/// - Returns: `[MediaConvertClientTypes.Endpoint]` extension PaginatorSequence where Input == DescribeEndpointsInput, Output == DescribeEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEndpointsPaginated` + /// to access the nested member `[MediaConvertClientTypes.Endpoint]` + /// - Returns: `[MediaConvertClientTypes.Endpoint]` public func endpoints() async throws -> [MediaConvertClientTypes.Endpoint] { return try await self.asyncCompactMap { item in item.endpoints } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension MediaConvertClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -60,24 +58,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[MediaConvertClientTypes.Job]` -/// - Returns: `[MediaConvertClientTypes.Job]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[MediaConvertClientTypes.Job]` + /// - Returns: `[MediaConvertClientTypes.Job]` public func jobs() async throws -> [MediaConvertClientTypes.Job] { return try await self.asyncCompactMap { item in item.jobs } } } - -/// Paginate over `[ListJobTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` extension MediaConvertClient { + /// Paginate over `[ListJobTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobTemplatesOutputResponse` public func listJobTemplatesPaginated(input: ListJobTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobTemplatesInput.nextToken, outputKey: \ListJobTemplatesOutputResponse.nextToken, paginationFunction: self.listJobTemplates(input:)) } @@ -94,24 +91,23 @@ extension ListJobTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` -/// to access the nested member `[MediaConvertClientTypes.JobTemplate]` -/// - Returns: `[MediaConvertClientTypes.JobTemplate]` extension PaginatorSequence where Input == ListJobTemplatesInput, Output == ListJobTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobTemplatesPaginated` + /// to access the nested member `[MediaConvertClientTypes.JobTemplate]` + /// - Returns: `[MediaConvertClientTypes.JobTemplate]` public func jobTemplates() async throws -> [MediaConvertClientTypes.JobTemplate] { return try await self.asyncCompactMap { item in item.jobTemplates } } } - -/// Paginate over `[ListPresetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPresetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPresetsOutputResponse` extension MediaConvertClient { + /// Paginate over `[ListPresetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPresetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPresetsOutputResponse` public func listPresetsPaginated(input: ListPresetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPresetsInput.nextToken, outputKey: \ListPresetsOutputResponse.nextToken, paginationFunction: self.listPresets(input:)) } @@ -128,24 +124,23 @@ extension ListPresetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPresetsPaginated` -/// to access the nested member `[MediaConvertClientTypes.Preset]` -/// - Returns: `[MediaConvertClientTypes.Preset]` extension PaginatorSequence where Input == ListPresetsInput, Output == ListPresetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPresetsPaginated` + /// to access the nested member `[MediaConvertClientTypes.Preset]` + /// - Returns: `[MediaConvertClientTypes.Preset]` public func presets() async throws -> [MediaConvertClientTypes.Preset] { return try await self.asyncCompactMap { item in item.presets } } } - -/// Paginate over `[ListQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` extension MediaConvertClient { + /// Paginate over `[ListQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` public func listQueuesPaginated(input: ListQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueuesInput.nextToken, outputKey: \ListQueuesOutputResponse.nextToken, paginationFunction: self.listQueues(input:)) } @@ -161,10 +156,10 @@ extension ListQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` -/// to access the nested member `[MediaConvertClientTypes.Queue]` -/// - Returns: `[MediaConvertClientTypes.Queue]` extension PaginatorSequence where Input == ListQueuesInput, Output == ListQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` + /// to access the nested member `[MediaConvertClientTypes.Queue]` + /// - Returns: `[MediaConvertClientTypes.Queue]` public func queues() async throws -> [MediaConvertClientTypes.Queue] { return try await self.asyncCompactMap { item in item.queues } } diff --git a/Sources/Services/AWSMediaConvert/models/Models.swift b/Sources/Services/AWSMediaConvert/models/Models.swift index 20b791cb463..2063324ce1e 100644 --- a/Sources/Services/AWSMediaConvert/models/Models.swift +++ b/Sources/Services/AWSMediaConvert/models/Models.swift @@ -1992,6 +1992,7 @@ extension MediaConvertClientTypes.AudioNormalizationSettings: Swift.Codable { case loudnessLogging = "loudnessLogging" case peakCalculation = "peakCalculation" case targetLkfs = "targetLkfs" + case truePeakLimiterThreshold = "truePeakLimiterThreshold" } public func encode(to encoder: Swift.Encoder) throws { @@ -2014,6 +2015,9 @@ extension MediaConvertClientTypes.AudioNormalizationSettings: Swift.Codable { if let targetLkfs = self.targetLkfs { try encodeContainer.encode(targetLkfs, forKey: .targetLkfs) } + if let truePeakLimiterThreshold = self.truePeakLimiterThreshold { + try encodeContainer.encode(truePeakLimiterThreshold, forKey: .truePeakLimiterThreshold) + } } public init (from decoder: Swift.Decoder) throws { @@ -2030,6 +2034,8 @@ extension MediaConvertClientTypes.AudioNormalizationSettings: Swift.Codable { peakCalculation = peakCalculationDecoded let targetLkfsDecoded = try containerValues.decodeIfPresent(Swift.Double.self, forKey: .targetLkfs) targetLkfs = targetLkfsDecoded + let truePeakLimiterThresholdDecoded = try containerValues.decodeIfPresent(Swift.Double.self, forKey: .truePeakLimiterThreshold) + truePeakLimiterThreshold = truePeakLimiterThresholdDecoded } } @@ -2048,6 +2054,8 @@ extension MediaConvertClientTypes { public var peakCalculation: MediaConvertClientTypes.AudioNormalizationPeakCalculation? /// When you use Audio normalization (AudioNormalizationSettings), optionally use this setting to specify a target loudness. If you don't specify a value here, the encoder chooses a value for you, based on the algorithm that you choose for Algorithm (algorithm). If you choose algorithm 1770-1, the encoder will choose -24 LKFS; otherwise, the encoder will choose -23 LKFS. public var targetLkfs: Swift.Double? + /// Specify the True-peak limiter threshold in decibels relative to full scale (dBFS). The peak inter-audio sample loudness in your output will be limited to the value that you specify, without affecting the overall target LKFS. Enter a value from 0 to -20. Leave blank to use the default value 0. + public var truePeakLimiterThreshold: Swift.Double? public init ( algorithm: MediaConvertClientTypes.AudioNormalizationAlgorithm? = nil, @@ -2055,7 +2063,8 @@ extension MediaConvertClientTypes { correctionGateLevel: Swift.Int? = nil, loudnessLogging: MediaConvertClientTypes.AudioNormalizationLoudnessLogging? = nil, peakCalculation: MediaConvertClientTypes.AudioNormalizationPeakCalculation? = nil, - targetLkfs: Swift.Double? = nil + targetLkfs: Swift.Double? = nil, + truePeakLimiterThreshold: Swift.Double? = nil ) { self.algorithm = algorithm @@ -2064,6 +2073,7 @@ extension MediaConvertClientTypes { self.loudnessLogging = loudnessLogging self.peakCalculation = peakCalculation self.targetLkfs = targetLkfs + self.truePeakLimiterThreshold = truePeakLimiterThreshold } } @@ -4860,6 +4870,71 @@ extension MediaConvertClientTypes { } +extension MediaConvertClientTypes.ClipLimits: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case maximumRGBTolerance = "maximumRGBTolerance" + case maximumYUV = "maximumYUV" + case minimumRGBTolerance = "minimumRGBTolerance" + case minimumYUV = "minimumYUV" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let maximumRGBTolerance = self.maximumRGBTolerance { + try encodeContainer.encode(maximumRGBTolerance, forKey: .maximumRGBTolerance) + } + if let maximumYUV = self.maximumYUV { + try encodeContainer.encode(maximumYUV, forKey: .maximumYUV) + } + if let minimumRGBTolerance = self.minimumRGBTolerance { + try encodeContainer.encode(minimumRGBTolerance, forKey: .minimumRGBTolerance) + } + if let minimumYUV = self.minimumYUV { + try encodeContainer.encode(minimumYUV, forKey: .minimumYUV) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let maximumRGBToleranceDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maximumRGBTolerance) + maximumRGBTolerance = maximumRGBToleranceDecoded + let maximumYUVDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maximumYUV) + maximumYUV = maximumYUVDecoded + let minimumRGBToleranceDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .minimumRGBTolerance) + minimumRGBTolerance = minimumRGBToleranceDecoded + let minimumYUVDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .minimumYUV) + minimumYUV = minimumYUVDecoded + } +} + +extension MediaConvertClientTypes { + /// Specify YUV limits and RGB tolerances when you set Sample range conversion to Limited range clip. + public struct ClipLimits: Swift.Equatable { + /// Specify the Maximum RGB color sample range tolerance for your output. MediaConvert corrects any YUV values that, when converted to RGB, would be outside the upper tolerance that you specify. Enter an integer from 90 to 105 as an offset percentage to the maximum possible value. Leave blank to use the default value 100. When you specify a value for Maximum RGB tolerance, you must set Sample range conversion to Limited range clip. + public var maximumRGBTolerance: Swift.Int? + /// Specify the Maximum YUV color sample limit. MediaConvert conforms any pixels in your input above the value that you specify to typical limited range bounds. Enter an integer from 920 to 1023. Leave blank to use the default value 940. The value that you enter applies to 10-bit ranges. For 8-bit ranges, MediaConvert automatically scales this value down. When you specify a value for Maximum YUV, you must set Sample range conversion to Limited range clip. + public var maximumYUV: Swift.Int? + /// Specify the Minimum RGB color sample range tolerance for your output. MediaConvert corrects any YUV values that, when converted to RGB, would be outside the lower tolerance that you specify. Enter an integer from -5 to 10 as an offset percentage to the minimum possible value. Leave blank to use the default value 0. When you specify a value for Minimum RGB tolerance, you must set Sample range conversion to Limited range clip. + public var minimumRGBTolerance: Swift.Int? + /// Specify the Minimum YUV color sample limit. MediaConvert conforms any pixels in your input below the value that you specify to typical limited range bounds. Enter an integer from 0 to 128. Leave blank to use the default value 64. The value that you enter applies to 10-bit ranges. For 8-bit ranges, MediaConvert automatically scales this value down. When you specify a value for Minumum YUV, you must set Sample range conversion to Limited range clip. + public var minimumYUV: Swift.Int? + + public init ( + maximumRGBTolerance: Swift.Int? = nil, + maximumYUV: Swift.Int? = nil, + minimumRGBTolerance: Swift.Int? = nil, + minimumYUV: Swift.Int? = nil + ) + { + self.maximumRGBTolerance = maximumRGBTolerance + self.maximumYUV = maximumYUV + self.minimumRGBTolerance = minimumRGBTolerance + self.minimumYUV = minimumYUV + } + } + +} + extension MediaConvertClientTypes.CmafAdditionalManifest: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case manifestNameModifier = "manifestNameModifier" @@ -5107,6 +5182,7 @@ extension MediaConvertClientTypes.CmafGroupSettings: Swift.Codable { case baseUrl = "baseUrl" case clientCache = "clientCache" case codecSpecification = "codecSpecification" + case dashManifestStyle = "dashManifestStyle" case destination = "destination" case destinationSettings = "destinationSettings" case encryption = "encryption" @@ -5148,6 +5224,9 @@ extension MediaConvertClientTypes.CmafGroupSettings: Swift.Codable { if let codecSpecification = self.codecSpecification { try encodeContainer.encode(codecSpecification.rawValue, forKey: .codecSpecification) } + if let dashManifestStyle = self.dashManifestStyle { + try encodeContainer.encode(dashManifestStyle.rawValue, forKey: .dashManifestStyle) + } if let destination = self.destination { try encodeContainer.encode(destination, forKey: .destination) } @@ -5235,6 +5314,8 @@ extension MediaConvertClientTypes.CmafGroupSettings: Swift.Codable { clientCache = clientCacheDecoded let codecSpecificationDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.CmafCodecSpecification.self, forKey: .codecSpecification) codecSpecification = codecSpecificationDecoded + let dashManifestStyleDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.DashManifestStyle.self, forKey: .dashManifestStyle) + dashManifestStyle = dashManifestStyleDecoded let destinationDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .destination) destination = destinationDecoded let destinationSettingsDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.DestinationSettings.self, forKey: .destinationSettings) @@ -5293,6 +5374,8 @@ extension MediaConvertClientTypes { public var clientCache: MediaConvertClientTypes.CmafClientCache? /// Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation. public var codecSpecification: MediaConvertClientTypes.CmafCodecSpecification? + /// Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline in each video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the video AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any Representation that does not share a common timeline. To write a video AdaptationSet for each different output framerate, and a common SegmentTimeline in each AdaptationSet: Choose Distinct. + public var dashManifestStyle: MediaConvertClientTypes.DashManifestStyle? /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. public var destination: Swift.String? /// Settings associated with the destination. Will vary based on the type of destination @@ -5343,6 +5426,7 @@ extension MediaConvertClientTypes { baseUrl: Swift.String? = nil, clientCache: MediaConvertClientTypes.CmafClientCache? = nil, codecSpecification: MediaConvertClientTypes.CmafCodecSpecification? = nil, + dashManifestStyle: MediaConvertClientTypes.DashManifestStyle? = nil, destination: Swift.String? = nil, destinationSettings: MediaConvertClientTypes.DestinationSettings? = nil, encryption: MediaConvertClientTypes.CmafEncryptionSettings? = nil, @@ -5371,6 +5455,7 @@ extension MediaConvertClientTypes { self.baseUrl = baseUrl self.clientCache = clientCache self.codecSpecification = codecSpecification + self.dashManifestStyle = dashManifestStyle self.destination = destination self.destinationSettings = destinationSettings self.encryption = encryption @@ -6219,7 +6304,7 @@ extension MediaConvertClientTypes { } extension MediaConvertClientTypes { - /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. + /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata (TimedMetadata) to Passthrough. public enum CmfcManifestMetadataSignaling: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case disabled case enabled @@ -6431,7 +6516,7 @@ extension MediaConvertClientTypes { public var iFrameOnlyManifest: MediaConvertClientTypes.CmfcIFrameOnlyManifest? /// To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert reads KLV metadata present in your input and writes each instance to a separate event message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank. public var klvMetadata: MediaConvertClientTypes.CmfcKlvMetadata? - /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. + /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata (TimedMetadata) to Passthrough. public var manifestMetadataSignaling: MediaConvertClientTypes.CmfcManifestMetadataSignaling? /// Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC XML (sccXml). public var scte35Esam: MediaConvertClientTypes.CmfcScte35Esam? @@ -6551,6 +6636,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes.ColorCorrector: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case brightness = "brightness" + case clipLimits = "clipLimits" case colorSpaceConversion = "colorSpaceConversion" case contrast = "contrast" case hdr10Metadata = "hdr10Metadata" @@ -6565,6 +6651,9 @@ extension MediaConvertClientTypes.ColorCorrector: Swift.Codable { if let brightness = self.brightness { try encodeContainer.encode(brightness, forKey: .brightness) } + if let clipLimits = self.clipLimits { + try encodeContainer.encode(clipLimits, forKey: .clipLimits) + } if let colorSpaceConversion = self.colorSpaceConversion { try encodeContainer.encode(colorSpaceConversion.rawValue, forKey: .colorSpaceConversion) } @@ -6592,6 +6681,8 @@ extension MediaConvertClientTypes.ColorCorrector: Swift.Codable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let brightnessDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .brightness) brightness = brightnessDecoded + let clipLimitsDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.ClipLimits.self, forKey: .clipLimits) + clipLimits = clipLimitsDecoded let colorSpaceConversionDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.ColorSpaceConversion.self, forKey: .colorSpaceConversion) colorSpaceConversion = colorSpaceConversionDecoded let contrastDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .contrast) @@ -6614,6 +6705,8 @@ extension MediaConvertClientTypes { public struct ColorCorrector: Swift.Equatable { /// Brightness level. public var brightness: Swift.Int? + /// Specify YUV limits and RGB tolerances when you set Sample range conversion to Limited range clip. + public var clipLimits: MediaConvertClientTypes.ClipLimits? /// Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR. Select Force P3D65 (SDR) to set the output color space metadata to the following: * Color primaries: Display P3 * Transfer characteristics: SMPTE 428M * Matrix coefficients: BT.709 public var colorSpaceConversion: MediaConvertClientTypes.ColorSpaceConversion? /// Contrast level. @@ -6622,7 +6715,7 @@ extension MediaConvertClientTypes { public var hdr10Metadata: MediaConvertClientTypes.Hdr10Metadata? /// Hue in degrees. public var hue: Swift.Int? - /// Specify the video color sample range for this output. To create a full range output, you must start with a full range YUV input and keep the default value, None (NONE). To create a limited range output from a full range input, choose Limited range (LIMITED_RANGE_SQUEEZE). With RGB inputs, your output is always limited range, regardless of your choice here. When you create a limited range output from a full range input, MediaConvert limits the active pixel values in a way that depends on the output's bit depth: 8-bit outputs contain only values from 16 through 235 and 10-bit outputs contain only values from 64 through 940. With this conversion, MediaConvert also changes the output metadata to note the limited range. + /// Specify how MediaConvert limits the color sample range for this output. To create a limited range output from a full range input: Choose Limited range squeeze. For full range inputs, MediaConvert performs a linear offset to color samples equally across all pixels and frames. Color samples in 10-bit outputs are limited to 64 through 940, and 8-bit outputs are limited to 16 through 235. Note: For limited range inputs, values for color samples are passed through to your output unchanged. MediaConvert does not limit the sample range. To correct pixels in your input that are out of range or out of gamut: Choose Limited range clip. Use for broadcast applications. MediaConvert conforms any pixels outside of the values that you specify under Minimum YUV and Maximum YUV to limited range bounds. MediaConvert also corrects any YUV values that, when converted to RGB, would be outside the bounds you specify under Minimum RGB tolerance and Maximum RGB tolerance. With either limited range conversion, MediaConvert writes the sample range metadata in the output. public var sampleRangeConversion: MediaConvertClientTypes.SampleRangeConversion? /// Saturation level. public var saturation: Swift.Int? @@ -6631,6 +6724,7 @@ extension MediaConvertClientTypes { public init ( brightness: Swift.Int? = nil, + clipLimits: MediaConvertClientTypes.ClipLimits? = nil, colorSpaceConversion: MediaConvertClientTypes.ColorSpaceConversion? = nil, contrast: Swift.Int? = nil, hdr10Metadata: MediaConvertClientTypes.Hdr10Metadata? = nil, @@ -6641,6 +6735,7 @@ extension MediaConvertClientTypes { ) { self.brightness = brightness + self.clipLimits = clipLimits self.colorSpaceConversion = colorSpaceConversion self.contrast = contrast self.hdr10Metadata = hdr10Metadata @@ -7192,7 +7287,7 @@ public struct CreateJobInput: Swift.Equatable { public var accelerationSettings: MediaConvertClientTypes.AccelerationSettings? /// Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an associated tag will appear in your billing report unsorted. If you don't choose a valid value for this field, your job outputs will appear on the billing report unsorted. public var billingTagsSource: MediaConvertClientTypes.BillingTagsSource? - /// Optional. Idempotency token for CreateJob operation. + /// Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request token can be any string that includes up to 64 ASCII characters. If you reuse a client request token within one minute of a successful request, the API returns the job details of the original request instead. For more information see https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html. public var clientRequestToken: Swift.String? /// Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. public var hopDestinations: [MediaConvertClientTypes.HopDestination]? @@ -8182,6 +8277,7 @@ extension MediaConvertClientTypes.DashIsoGroupSettings: Swift.Codable { case additionalManifests = "additionalManifests" case audioChannelConfigSchemeIdUri = "audioChannelConfigSchemeIdUri" case baseUrl = "baseUrl" + case dashManifestStyle = "dashManifestStyle" case destination = "destination" case destinationSettings = "destinationSettings" case encryption = "encryption" @@ -8215,6 +8311,9 @@ extension MediaConvertClientTypes.DashIsoGroupSettings: Swift.Codable { if let baseUrl = self.baseUrl { try encodeContainer.encode(baseUrl, forKey: .baseUrl) } + if let dashManifestStyle = self.dashManifestStyle { + try encodeContainer.encode(dashManifestStyle.rawValue, forKey: .dashManifestStyle) + } if let destination = self.destination { try encodeContainer.encode(destination, forKey: .destination) } @@ -8285,6 +8384,8 @@ extension MediaConvertClientTypes.DashIsoGroupSettings: Swift.Codable { audioChannelConfigSchemeIdUri = audioChannelConfigSchemeIdUriDecoded let baseUrlDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .baseUrl) baseUrl = baseUrlDecoded + let dashManifestStyleDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.DashManifestStyle.self, forKey: .dashManifestStyle) + dashManifestStyle = dashManifestStyleDecoded let destinationDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .destination) destination = destinationDecoded let destinationSettingsDecoded = try containerValues.decodeIfPresent(MediaConvertClientTypes.DestinationSettings.self, forKey: .destinationSettings) @@ -8331,6 +8432,8 @@ extension MediaConvertClientTypes { public var audioChannelConfigSchemeIdUri: MediaConvertClientTypes.DashIsoGroupAudioChannelConfigSchemeIdUri? /// A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used if streams are delivered from a different URL than the manifest file. public var baseUrl: Swift.String? + /// Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline in each video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the video AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any Representation that does not share a common timeline. To write a video AdaptationSet for each different output framerate, and a common SegmentTimeline in each AdaptationSet: Choose Distinct. + public var dashManifestStyle: MediaConvertClientTypes.DashManifestStyle? /// Use Destination (Destination) to specify the S3 output location and the output filename base. Destination accepts format identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input file. If your job has multiple inputs, the service uses the filename of the first input file. public var destination: Swift.String? /// Settings associated with the destination. Will vary based on the type of destination @@ -8370,6 +8473,7 @@ extension MediaConvertClientTypes { additionalManifests: [MediaConvertClientTypes.DashAdditionalManifest]? = nil, audioChannelConfigSchemeIdUri: MediaConvertClientTypes.DashIsoGroupAudioChannelConfigSchemeIdUri? = nil, baseUrl: Swift.String? = nil, + dashManifestStyle: MediaConvertClientTypes.DashManifestStyle? = nil, destination: Swift.String? = nil, destinationSettings: MediaConvertClientTypes.DestinationSettings? = nil, encryption: MediaConvertClientTypes.DashIsoEncryptionSettings? = nil, @@ -8392,6 +8496,7 @@ extension MediaConvertClientTypes { self.additionalManifests = additionalManifests self.audioChannelConfigSchemeIdUri = audioChannelConfigSchemeIdUri self.baseUrl = baseUrl + self.dashManifestStyle = dashManifestStyle self.destination = destination self.destinationSettings = destinationSettings self.encryption = encryption @@ -8868,6 +8973,42 @@ extension MediaConvertClientTypes { } } +extension MediaConvertClientTypes { + /// Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline in each video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the video AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any Representation that does not share a common timeline. To write a video AdaptationSet for each different output framerate, and a common SegmentTimeline in each AdaptationSet: Choose Distinct. + public enum DashManifestStyle: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case basic + case compact + case distinct + case sdkUnknown(Swift.String) + + public static var allCases: [DashManifestStyle] { + return [ + .basic, + .compact, + .distinct, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .basic: return "BASIC" + case .compact: return "COMPACT" + case .distinct: return "DISTINCT" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = DashManifestStyle(rawValue: rawValue) ?? DashManifestStyle.sdkUnknown(rawValue) + } + } +} + extension MediaConvertClientTypes { /// Specify the encryption mode that you used to encrypt your input files. public enum DecryptionMode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { @@ -24608,7 +24749,7 @@ extension MediaConvertClientTypes { } extension MediaConvertClientTypes { - /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. + /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata (TimedMetadata) to Passthrough. public enum MpdManifestMetadataSignaling: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case disabled case enabled @@ -24796,7 +24937,7 @@ extension MediaConvertClientTypes { public var captionContainerType: MediaConvertClientTypes.MpdCaptionContainerType? /// To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert reads KLV metadata present in your input and writes each instance to a separate event message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank. public var klvMetadata: MediaConvertClientTypes.MpdKlvMetadata? - /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. + /// To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata (TimedMetadata) to Passthrough. public var manifestMetadataSignaling: MediaConvertClientTypes.MpdManifestMetadataSignaling? /// Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC XML (sccXml). public var scte35Esam: MediaConvertClientTypes.MpdScte35Esam? @@ -29803,14 +29944,16 @@ extension MediaConvertClientTypes { } extension MediaConvertClientTypes { - /// Specify the video color sample range for this output. To create a full range output, you must start with a full range YUV input and keep the default value, None (NONE). To create a limited range output from a full range input, choose Limited range (LIMITED_RANGE_SQUEEZE). With RGB inputs, your output is always limited range, regardless of your choice here. When you create a limited range output from a full range input, MediaConvert limits the active pixel values in a way that depends on the output's bit depth: 8-bit outputs contain only values from 16 through 235 and 10-bit outputs contain only values from 64 through 940. With this conversion, MediaConvert also changes the output metadata to note the limited range. + /// Specify how MediaConvert limits the color sample range for this output. To create a limited range output from a full range input: Choose Limited range squeeze. For full range inputs, MediaConvert performs a linear offset to color samples equally across all pixels and frames. Color samples in 10-bit outputs are limited to 64 through 940, and 8-bit outputs are limited to 16 through 235. Note: For limited range inputs, values for color samples are passed through to your output unchanged. MediaConvert does not limit the sample range. To correct pixels in your input that are out of range or out of gamut: Choose Limited range clip. Use for broadcast applications. MediaConvert conforms any pixels outside of the values that you specify under Minimum YUV and Maximum YUV to limited range bounds. MediaConvert also corrects any YUV values that, when converted to RGB, would be outside the bounds you specify under Minimum RGB tolerance and Maximum RGB tolerance. With either limited range conversion, MediaConvert writes the sample range metadata in the output. public enum SampleRangeConversion: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case limitedRangeClip case limitedRangeSqueeze case `none` case sdkUnknown(Swift.String) public static var allCases: [SampleRangeConversion] { return [ + .limitedRangeClip, .limitedRangeSqueeze, .none, .sdkUnknown("") @@ -29822,6 +29965,7 @@ extension MediaConvertClientTypes { } public var rawValue: Swift.String { switch self { + case .limitedRangeClip: return "LIMITED_RANGE_CLIP" case .limitedRangeSqueeze: return "LIMITED_RANGE_SQUEEZE" case .none: return "NONE" case let .sdkUnknown(s): return s diff --git a/Sources/Services/AWSMediaLive/Paginators.swift b/Sources/Services/AWSMediaLive/Paginators.swift index 36caff73050..93897f8c7d5 100644 --- a/Sources/Services/AWSMediaLive/Paginators.swift +++ b/Sources/Services/AWSMediaLive/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeScheduleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduleOutputResponse` extension MediaLiveClient { + /// Paginate over `[DescribeScheduleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduleOutputResponse` public func describeSchedulePaginated(input: DescribeScheduleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduleInput.nextToken, outputKey: \DescribeScheduleOutputResponse.nextToken, paginationFunction: self.describeSchedule(input:)) } @@ -26,24 +25,23 @@ extension DescribeScheduleInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSchedulePaginated` -/// to access the nested member `[MediaLiveClientTypes.ScheduleAction]` -/// - Returns: `[MediaLiveClientTypes.ScheduleAction]` extension PaginatorSequence where Input == DescribeScheduleInput, Output == DescribeScheduleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSchedulePaginated` + /// to access the nested member `[MediaLiveClientTypes.ScheduleAction]` + /// - Returns: `[MediaLiveClientTypes.ScheduleAction]` public func scheduleActions() async throws -> [MediaLiveClientTypes.ScheduleAction] { return try await self.asyncCompactMap { item in item.scheduleActions } } } - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -57,24 +55,23 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listChannelsPaginated` -/// to access the nested member `[MediaLiveClientTypes.ChannelSummary]` -/// - Returns: `[MediaLiveClientTypes.ChannelSummary]` extension PaginatorSequence where Input == ListChannelsInput, Output == ListChannelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listChannelsPaginated` + /// to access the nested member `[MediaLiveClientTypes.ChannelSummary]` + /// - Returns: `[MediaLiveClientTypes.ChannelSummary]` public func channels() async throws -> [MediaLiveClientTypes.ChannelSummary] { return try await self.asyncCompactMap { item in item.channels } } } - -/// Paginate over `[ListInputDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInputDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInputDevicesOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListInputDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInputDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInputDevicesOutputResponse` public func listInputDevicesPaginated(input: ListInputDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInputDevicesInput.nextToken, outputKey: \ListInputDevicesOutputResponse.nextToken, paginationFunction: self.listInputDevices(input:)) } @@ -88,24 +85,23 @@ extension ListInputDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInputDevicesPaginated` -/// to access the nested member `[MediaLiveClientTypes.InputDeviceSummary]` -/// - Returns: `[MediaLiveClientTypes.InputDeviceSummary]` extension PaginatorSequence where Input == ListInputDevicesInput, Output == ListInputDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInputDevicesPaginated` + /// to access the nested member `[MediaLiveClientTypes.InputDeviceSummary]` + /// - Returns: `[MediaLiveClientTypes.InputDeviceSummary]` public func inputDevices() async throws -> [MediaLiveClientTypes.InputDeviceSummary] { return try await self.asyncCompactMap { item in item.inputDevices } } } - -/// Paginate over `[ListInputDeviceTransfersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInputDeviceTransfersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInputDeviceTransfersOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListInputDeviceTransfersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInputDeviceTransfersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInputDeviceTransfersOutputResponse` public func listInputDeviceTransfersPaginated(input: ListInputDeviceTransfersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInputDeviceTransfersInput.nextToken, outputKey: \ListInputDeviceTransfersOutputResponse.nextToken, paginationFunction: self.listInputDeviceTransfers(input:)) } @@ -120,24 +116,23 @@ extension ListInputDeviceTransfersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInputDeviceTransfersPaginated` -/// to access the nested member `[MediaLiveClientTypes.TransferringInputDeviceSummary]` -/// - Returns: `[MediaLiveClientTypes.TransferringInputDeviceSummary]` extension PaginatorSequence where Input == ListInputDeviceTransfersInput, Output == ListInputDeviceTransfersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInputDeviceTransfersPaginated` + /// to access the nested member `[MediaLiveClientTypes.TransferringInputDeviceSummary]` + /// - Returns: `[MediaLiveClientTypes.TransferringInputDeviceSummary]` public func inputDeviceTransfers() async throws -> [MediaLiveClientTypes.TransferringInputDeviceSummary] { return try await self.asyncCompactMap { item in item.inputDeviceTransfers } } } - -/// Paginate over `[ListInputsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInputsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInputsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListInputsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInputsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInputsOutputResponse` public func listInputsPaginated(input: ListInputsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInputsInput.nextToken, outputKey: \ListInputsOutputResponse.nextToken, paginationFunction: self.listInputs(input:)) } @@ -151,24 +146,23 @@ extension ListInputsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInputsPaginated` -/// to access the nested member `[MediaLiveClientTypes.Input]` -/// - Returns: `[MediaLiveClientTypes.Input]` extension PaginatorSequence where Input == ListInputsInput, Output == ListInputsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInputsPaginated` + /// to access the nested member `[MediaLiveClientTypes.Input]` + /// - Returns: `[MediaLiveClientTypes.Input]` public func inputs() async throws -> [MediaLiveClientTypes.Input] { return try await self.asyncCompactMap { item in item.inputs } } } - -/// Paginate over `[ListInputSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInputSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInputSecurityGroupsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListInputSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInputSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInputSecurityGroupsOutputResponse` public func listInputSecurityGroupsPaginated(input: ListInputSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInputSecurityGroupsInput.nextToken, outputKey: \ListInputSecurityGroupsOutputResponse.nextToken, paginationFunction: self.listInputSecurityGroups(input:)) } @@ -182,24 +176,23 @@ extension ListInputSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInputSecurityGroupsPaginated` -/// to access the nested member `[MediaLiveClientTypes.InputSecurityGroup]` -/// - Returns: `[MediaLiveClientTypes.InputSecurityGroup]` extension PaginatorSequence where Input == ListInputSecurityGroupsInput, Output == ListInputSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInputSecurityGroupsPaginated` + /// to access the nested member `[MediaLiveClientTypes.InputSecurityGroup]` + /// - Returns: `[MediaLiveClientTypes.InputSecurityGroup]` public func inputSecurityGroups() async throws -> [MediaLiveClientTypes.InputSecurityGroup] { return try await self.asyncCompactMap { item in item.inputSecurityGroups } } } - -/// Paginate over `[ListMultiplexesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMultiplexesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMultiplexesOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListMultiplexesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMultiplexesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMultiplexesOutputResponse` public func listMultiplexesPaginated(input: ListMultiplexesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMultiplexesInput.nextToken, outputKey: \ListMultiplexesOutputResponse.nextToken, paginationFunction: self.listMultiplexes(input:)) } @@ -213,24 +206,23 @@ extension ListMultiplexesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMultiplexesPaginated` -/// to access the nested member `[MediaLiveClientTypes.MultiplexSummary]` -/// - Returns: `[MediaLiveClientTypes.MultiplexSummary]` extension PaginatorSequence where Input == ListMultiplexesInput, Output == ListMultiplexesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMultiplexesPaginated` + /// to access the nested member `[MediaLiveClientTypes.MultiplexSummary]` + /// - Returns: `[MediaLiveClientTypes.MultiplexSummary]` public func multiplexes() async throws -> [MediaLiveClientTypes.MultiplexSummary] { return try await self.asyncCompactMap { item in item.multiplexes } } } - -/// Paginate over `[ListMultiplexProgramsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMultiplexProgramsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMultiplexProgramsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListMultiplexProgramsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMultiplexProgramsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMultiplexProgramsOutputResponse` public func listMultiplexProgramsPaginated(input: ListMultiplexProgramsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMultiplexProgramsInput.nextToken, outputKey: \ListMultiplexProgramsOutputResponse.nextToken, paginationFunction: self.listMultiplexPrograms(input:)) } @@ -245,24 +237,23 @@ extension ListMultiplexProgramsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMultiplexProgramsPaginated` -/// to access the nested member `[MediaLiveClientTypes.MultiplexProgramSummary]` -/// - Returns: `[MediaLiveClientTypes.MultiplexProgramSummary]` extension PaginatorSequence where Input == ListMultiplexProgramsInput, Output == ListMultiplexProgramsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMultiplexProgramsPaginated` + /// to access the nested member `[MediaLiveClientTypes.MultiplexProgramSummary]` + /// - Returns: `[MediaLiveClientTypes.MultiplexProgramSummary]` public func multiplexPrograms() async throws -> [MediaLiveClientTypes.MultiplexProgramSummary] { return try await self.asyncCompactMap { item in item.multiplexPrograms } } } - -/// Paginate over `[ListOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOfferingsOutputResponse` public func listOfferingsPaginated(input: ListOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOfferingsInput.nextToken, outputKey: \ListOfferingsOutputResponse.nextToken, paginationFunction: self.listOfferings(input:)) } @@ -286,24 +277,23 @@ extension ListOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` -/// to access the nested member `[MediaLiveClientTypes.Offering]` -/// - Returns: `[MediaLiveClientTypes.Offering]` extension PaginatorSequence where Input == ListOfferingsInput, Output == ListOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOfferingsPaginated` + /// to access the nested member `[MediaLiveClientTypes.Offering]` + /// - Returns: `[MediaLiveClientTypes.Offering]` public func offerings() async throws -> [MediaLiveClientTypes.Offering] { return try await self.asyncCompactMap { item in item.offerings } } } - -/// Paginate over `[ListReservationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReservationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReservationsOutputResponse` extension MediaLiveClient { + /// Paginate over `[ListReservationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReservationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReservationsOutputResponse` public func listReservationsPaginated(input: ListReservationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReservationsInput.nextToken, outputKey: \ListReservationsOutputResponse.nextToken, paginationFunction: self.listReservations(input:)) } @@ -325,10 +315,10 @@ extension ListReservationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReservationsPaginated` -/// to access the nested member `[MediaLiveClientTypes.Reservation]` -/// - Returns: `[MediaLiveClientTypes.Reservation]` extension PaginatorSequence where Input == ListReservationsInput, Output == ListReservationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReservationsPaginated` + /// to access the nested member `[MediaLiveClientTypes.Reservation]` + /// - Returns: `[MediaLiveClientTypes.Reservation]` public func reservations() async throws -> [MediaLiveClientTypes.Reservation] { return try await self.asyncCompactMap { item in item.reservations } } diff --git a/Sources/Services/AWSMediaPackage/Paginators.swift b/Sources/Services/AWSMediaPackage/Paginators.swift index 56e4da09872..b4452be9751 100644 --- a/Sources/Services/AWSMediaPackage/Paginators.swift +++ b/Sources/Services/AWSMediaPackage/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` extension MediaPackageClient { + /// Paginate over `[ListChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChannelsOutputResponse` public func listChannelsPaginated(input: ListChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChannelsInput.nextToken, outputKey: \ListChannelsOutputResponse.nextToken, paginationFunction: self.listChannels(input:)) } @@ -25,24 +24,23 @@ extension ListChannelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listChannelsPaginated` -/// to access the nested member `[MediaPackageClientTypes.Channel]` -/// - Returns: `[MediaPackageClientTypes.Channel]` extension PaginatorSequence where Input == ListChannelsInput, Output == ListChannelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listChannelsPaginated` + /// to access the nested member `[MediaPackageClientTypes.Channel]` + /// - Returns: `[MediaPackageClientTypes.Channel]` public func channels() async throws -> [MediaPackageClientTypes.Channel] { return try await self.asyncCompactMap { item in item.channels } } } - -/// Paginate over `[ListHarvestJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHarvestJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHarvestJobsOutputResponse` extension MediaPackageClient { + /// Paginate over `[ListHarvestJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHarvestJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHarvestJobsOutputResponse` public func listHarvestJobsPaginated(input: ListHarvestJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHarvestJobsInput.nextToken, outputKey: \ListHarvestJobsOutputResponse.nextToken, paginationFunction: self.listHarvestJobs(input:)) } @@ -58,24 +56,23 @@ extension ListHarvestJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHarvestJobsPaginated` -/// to access the nested member `[MediaPackageClientTypes.HarvestJob]` -/// - Returns: `[MediaPackageClientTypes.HarvestJob]` extension PaginatorSequence where Input == ListHarvestJobsInput, Output == ListHarvestJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHarvestJobsPaginated` + /// to access the nested member `[MediaPackageClientTypes.HarvestJob]` + /// - Returns: `[MediaPackageClientTypes.HarvestJob]` public func harvestJobs() async throws -> [MediaPackageClientTypes.HarvestJob] { return try await self.asyncCompactMap { item in item.harvestJobs } } } - -/// Paginate over `[ListOriginEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOriginEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOriginEndpointsOutputResponse` extension MediaPackageClient { + /// Paginate over `[ListOriginEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOriginEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOriginEndpointsOutputResponse` public func listOriginEndpointsPaginated(input: ListOriginEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOriginEndpointsInput.nextToken, outputKey: \ListOriginEndpointsOutputResponse.nextToken, paginationFunction: self.listOriginEndpoints(input:)) } @@ -90,10 +87,10 @@ extension ListOriginEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOriginEndpointsPaginated` -/// to access the nested member `[MediaPackageClientTypes.OriginEndpoint]` -/// - Returns: `[MediaPackageClientTypes.OriginEndpoint]` extension PaginatorSequence where Input == ListOriginEndpointsInput, Output == ListOriginEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOriginEndpointsPaginated` + /// to access the nested member `[MediaPackageClientTypes.OriginEndpoint]` + /// - Returns: `[MediaPackageClientTypes.OriginEndpoint]` public func originEndpoints() async throws -> [MediaPackageClientTypes.OriginEndpoint] { return try await self.asyncCompactMap { item in item.originEndpoints } } diff --git a/Sources/Services/AWSMediaPackageVod/Paginators.swift b/Sources/Services/AWSMediaPackageVod/Paginators.swift index 7ad41f25b9b..9f1ceac9518 100644 --- a/Sources/Services/AWSMediaPackageVod/Paginators.swift +++ b/Sources/Services/AWSMediaPackageVod/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` extension MediaPackageVodClient { + /// Paginate over `[ListAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` public func listAssetsPaginated(input: ListAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetsInput.nextToken, outputKey: \ListAssetsOutputResponse.nextToken, paginationFunction: self.listAssets(input:)) } @@ -26,24 +25,23 @@ extension ListAssetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssetsPaginated` -/// to access the nested member `[MediaPackageVodClientTypes.AssetShallow]` -/// - Returns: `[MediaPackageVodClientTypes.AssetShallow]` extension PaginatorSequence where Input == ListAssetsInput, Output == ListAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetsPaginated` + /// to access the nested member `[MediaPackageVodClientTypes.AssetShallow]` + /// - Returns: `[MediaPackageVodClientTypes.AssetShallow]` public func assets() async throws -> [MediaPackageVodClientTypes.AssetShallow] { return try await self.asyncCompactMap { item in item.assets } } } - -/// Paginate over `[ListPackagingConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagingConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagingConfigurationsOutputResponse` extension MediaPackageVodClient { + /// Paginate over `[ListPackagingConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagingConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagingConfigurationsOutputResponse` public func listPackagingConfigurationsPaginated(input: ListPackagingConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagingConfigurationsInput.nextToken, outputKey: \ListPackagingConfigurationsOutputResponse.nextToken, paginationFunction: self.listPackagingConfigurations(input:)) } @@ -58,24 +56,23 @@ extension ListPackagingConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPackagingConfigurationsPaginated` -/// to access the nested member `[MediaPackageVodClientTypes.PackagingConfiguration]` -/// - Returns: `[MediaPackageVodClientTypes.PackagingConfiguration]` extension PaginatorSequence where Input == ListPackagingConfigurationsInput, Output == ListPackagingConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPackagingConfigurationsPaginated` + /// to access the nested member `[MediaPackageVodClientTypes.PackagingConfiguration]` + /// - Returns: `[MediaPackageVodClientTypes.PackagingConfiguration]` public func packagingConfigurations() async throws -> [MediaPackageVodClientTypes.PackagingConfiguration] { return try await self.asyncCompactMap { item in item.packagingConfigurations } } } - -/// Paginate over `[ListPackagingGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagingGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagingGroupsOutputResponse` extension MediaPackageVodClient { + /// Paginate over `[ListPackagingGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagingGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagingGroupsOutputResponse` public func listPackagingGroupsPaginated(input: ListPackagingGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagingGroupsInput.nextToken, outputKey: \ListPackagingGroupsOutputResponse.nextToken, paginationFunction: self.listPackagingGroups(input:)) } @@ -89,10 +86,10 @@ extension ListPackagingGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPackagingGroupsPaginated` -/// to access the nested member `[MediaPackageVodClientTypes.PackagingGroup]` -/// - Returns: `[MediaPackageVodClientTypes.PackagingGroup]` extension PaginatorSequence where Input == ListPackagingGroupsInput, Output == ListPackagingGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPackagingGroupsPaginated` + /// to access the nested member `[MediaPackageVodClientTypes.PackagingGroup]` + /// - Returns: `[MediaPackageVodClientTypes.PackagingGroup]` public func packagingGroups() async throws -> [MediaPackageVodClientTypes.PackagingGroup] { return try await self.asyncCompactMap { item in item.packagingGroups } } diff --git a/Sources/Services/AWSMediaStore/Paginators.swift b/Sources/Services/AWSMediaStore/Paginators.swift index e145d08e0fe..1dbad30e2ab 100644 --- a/Sources/Services/AWSMediaStore/Paginators.swift +++ b/Sources/Services/AWSMediaStore/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListContainersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContainersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContainersOutputResponse` extension MediaStoreClient { + /// Paginate over `[ListContainersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContainersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContainersOutputResponse` public func listContainersPaginated(input: ListContainersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContainersInput.nextToken, outputKey: \ListContainersOutputResponse.nextToken, paginationFunction: self.listContainers(input:)) } diff --git a/Sources/Services/AWSMediaStoreData/Paginators.swift b/Sources/Services/AWSMediaStoreData/Paginators.swift index 749d75505e2..5ec660bb8f3 100644 --- a/Sources/Services/AWSMediaStoreData/Paginators.swift +++ b/Sources/Services/AWSMediaStoreData/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListItemsOutputResponse` extension MediaStoreDataClient { + /// Paginate over `[ListItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListItemsOutputResponse` public func listItemsPaginated(input: ListItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListItemsInput.nextToken, outputKey: \ListItemsOutputResponse.nextToken, paginationFunction: self.listItems(input:)) } diff --git a/Sources/Services/AWSMediaTailor/Paginators.swift b/Sources/Services/AWSMediaTailor/Paginators.swift index fc597650457..a24c5fe3876 100644 --- a/Sources/Services/AWSMediaTailor/Paginators.swift +++ b/Sources/Services/AWSMediaTailor/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAlertsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAlertsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAlertsOutputResponse` extension MediaTailorClient { + /// Paginate over `[ListAlertsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAlertsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAlertsOutputResponse` public func listAlertsPaginated(input: ListAlertsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAlertsInput.nextToken, outputKey: \ListAlertsOutputResponse.nextToken, paginationFunction: self.listAlerts(input:)) } @@ -26,10 +25,10 @@ extension ListAlertsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAlertsPaginated` -/// to access the nested member `[MediaTailorClientTypes.Alert]` -/// - Returns: `[MediaTailorClientTypes.Alert]` extension PaginatorSequence where Input == ListAlertsInput, Output == ListAlertsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAlertsPaginated` + /// to access the nested member `[MediaTailorClientTypes.Alert]` + /// - Returns: `[MediaTailorClientTypes.Alert]` public func items() async throws -> [MediaTailorClientTypes.Alert] { return try await self.asyncCompactMap { item in item.items } } diff --git a/Sources/Services/AWSMemoryDB/Paginators.swift b/Sources/Services/AWSMemoryDB/Paginators.swift index 3bc640bd793..8d2a26c5bd9 100644 --- a/Sources/Services/AWSMemoryDB/Paginators.swift +++ b/Sources/Services/AWSMemoryDB/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeACLsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeACLsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeACLsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeACLsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeACLsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeACLsOutputResponse` public func describeACLsPaginated(input: DescribeACLsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeACLsInput.nextToken, outputKey: \DescribeACLsOutputResponse.nextToken, paginationFunction: self.describeACLs(input:)) } @@ -26,24 +25,23 @@ extension DescribeACLsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeACLsPaginated` -/// to access the nested member `[MemoryDBClientTypes.ACL]` -/// - Returns: `[MemoryDBClientTypes.ACL]` extension PaginatorSequence where Input == DescribeACLsInput, Output == DescribeACLsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeACLsPaginated` + /// to access the nested member `[MemoryDBClientTypes.ACL]` + /// - Returns: `[MemoryDBClientTypes.ACL]` public func acLs() async throws -> [MemoryDBClientTypes.ACL] { return try await self.asyncCompactMap { item in item.acLs } } } - -/// Paginate over `[DescribeClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` public func describeClustersPaginated(input: DescribeClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClustersInput.nextToken, outputKey: \DescribeClustersOutputResponse.nextToken, paginationFunction: self.describeClusters(input:)) } @@ -59,24 +57,23 @@ extension DescribeClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClustersPaginated` -/// to access the nested member `[MemoryDBClientTypes.Cluster]` -/// - Returns: `[MemoryDBClientTypes.Cluster]` extension PaginatorSequence where Input == DescribeClustersInput, Output == DescribeClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClustersPaginated` + /// to access the nested member `[MemoryDBClientTypes.Cluster]` + /// - Returns: `[MemoryDBClientTypes.Cluster]` public func clusters() async throws -> [MemoryDBClientTypes.Cluster] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[DescribeEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineVersionsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineVersionsOutputResponse` public func describeEngineVersionsPaginated(input: DescribeEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEngineVersionsInput.nextToken, outputKey: \DescribeEngineVersionsOutputResponse.nextToken, paginationFunction: self.describeEngineVersions(input:)) } @@ -93,24 +90,23 @@ extension DescribeEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEngineVersionsPaginated` -/// to access the nested member `[MemoryDBClientTypes.EngineVersionInfo]` -/// - Returns: `[MemoryDBClientTypes.EngineVersionInfo]` extension PaginatorSequence where Input == DescribeEngineVersionsInput, Output == DescribeEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEngineVersionsPaginated` + /// to access the nested member `[MemoryDBClientTypes.EngineVersionInfo]` + /// - Returns: `[MemoryDBClientTypes.EngineVersionInfo]` public func engineVersions() async throws -> [MemoryDBClientTypes.EngineVersionInfo] { return try await self.asyncCompactMap { item in item.engineVersions } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.nextToken, outputKey: \DescribeEventsOutputResponse.nextToken, paginationFunction: self.describeEvents(input:)) } @@ -129,24 +125,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[MemoryDBClientTypes.Event]` -/// - Returns: `[MemoryDBClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[MemoryDBClientTypes.Event]` + /// - Returns: `[MemoryDBClientTypes.Event]` public func events() async throws -> [MemoryDBClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeParameterGroupsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeParameterGroupsOutputResponse` public func describeParameterGroupsPaginated(input: DescribeParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeParameterGroupsInput.nextToken, outputKey: \DescribeParameterGroupsOutputResponse.nextToken, paginationFunction: self.describeParameterGroups(input:)) } @@ -161,24 +156,23 @@ extension DescribeParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeParameterGroupsPaginated` -/// to access the nested member `[MemoryDBClientTypes.ParameterGroup]` -/// - Returns: `[MemoryDBClientTypes.ParameterGroup]` extension PaginatorSequence where Input == DescribeParameterGroupsInput, Output == DescribeParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeParameterGroupsPaginated` + /// to access the nested member `[MemoryDBClientTypes.ParameterGroup]` + /// - Returns: `[MemoryDBClientTypes.ParameterGroup]` public func parameterGroups() async throws -> [MemoryDBClientTypes.ParameterGroup] { return try await self.asyncCompactMap { item in item.parameterGroups } } } - -/// Paginate over `[DescribeParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeParametersOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeParametersOutputResponse` public func describeParametersPaginated(input: DescribeParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeParametersInput.nextToken, outputKey: \DescribeParametersOutputResponse.nextToken, paginationFunction: self.describeParameters(input:)) } @@ -193,24 +187,23 @@ extension DescribeParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeParametersPaginated` -/// to access the nested member `[MemoryDBClientTypes.Parameter]` -/// - Returns: `[MemoryDBClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeParametersInput, Output == DescribeParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeParametersPaginated` + /// to access the nested member `[MemoryDBClientTypes.Parameter]` + /// - Returns: `[MemoryDBClientTypes.Parameter]` public func parameters() async throws -> [MemoryDBClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeReservedNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeReservedNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOutputResponse` public func describeReservedNodesPaginated(input: DescribeReservedNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedNodesInput.nextToken, outputKey: \DescribeReservedNodesOutputResponse.nextToken, paginationFunction: self.describeReservedNodes(input:)) } @@ -229,24 +222,23 @@ extension DescribeReservedNodesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesPaginated` -/// to access the nested member `[MemoryDBClientTypes.ReservedNode]` -/// - Returns: `[MemoryDBClientTypes.ReservedNode]` extension PaginatorSequence where Input == DescribeReservedNodesInput, Output == DescribeReservedNodesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesPaginated` + /// to access the nested member `[MemoryDBClientTypes.ReservedNode]` + /// - Returns: `[MemoryDBClientTypes.ReservedNode]` public func reservedNodes() async throws -> [MemoryDBClientTypes.ReservedNode] { return try await self.asyncCompactMap { item in item.reservedNodes } } } - -/// Paginate over `[DescribeReservedNodesOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedNodesOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOfferingsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeReservedNodesOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedNodesOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOfferingsOutputResponse` public func describeReservedNodesOfferingsPaginated(input: DescribeReservedNodesOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedNodesOfferingsInput.nextToken, outputKey: \DescribeReservedNodesOfferingsOutputResponse.nextToken, paginationFunction: self.describeReservedNodesOfferings(input:)) } @@ -264,24 +256,23 @@ extension DescribeReservedNodesOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesOfferingsPaginated` -/// to access the nested member `[MemoryDBClientTypes.ReservedNodesOffering]` -/// - Returns: `[MemoryDBClientTypes.ReservedNodesOffering]` extension PaginatorSequence where Input == DescribeReservedNodesOfferingsInput, Output == DescribeReservedNodesOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesOfferingsPaginated` + /// to access the nested member `[MemoryDBClientTypes.ReservedNodesOffering]` + /// - Returns: `[MemoryDBClientTypes.ReservedNodesOffering]` public func reservedNodesOfferings() async throws -> [MemoryDBClientTypes.ReservedNodesOffering] { return try await self.asyncCompactMap { item in item.reservedNodesOfferings } } } - -/// Paginate over `[DescribeServiceUpdatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeServiceUpdatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeServiceUpdatesOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeServiceUpdatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeServiceUpdatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeServiceUpdatesOutputResponse` public func describeServiceUpdatesPaginated(input: DescribeServiceUpdatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeServiceUpdatesInput.nextToken, outputKey: \DescribeServiceUpdatesOutputResponse.nextToken, paginationFunction: self.describeServiceUpdates(input:)) } @@ -298,24 +289,23 @@ extension DescribeServiceUpdatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeServiceUpdatesPaginated` -/// to access the nested member `[MemoryDBClientTypes.ServiceUpdate]` -/// - Returns: `[MemoryDBClientTypes.ServiceUpdate]` extension PaginatorSequence where Input == DescribeServiceUpdatesInput, Output == DescribeServiceUpdatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeServiceUpdatesPaginated` + /// to access the nested member `[MemoryDBClientTypes.ServiceUpdate]` + /// - Returns: `[MemoryDBClientTypes.ServiceUpdate]` public func serviceUpdates() async throws -> [MemoryDBClientTypes.ServiceUpdate] { return try await self.asyncCompactMap { item in item.serviceUpdates } } } - -/// Paginate over `[DescribeSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotsOutputResponse` public func describeSnapshotsPaginated(input: DescribeSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotsInput.nextToken, outputKey: \DescribeSnapshotsOutputResponse.nextToken, paginationFunction: self.describeSnapshots(input:)) } @@ -333,24 +323,23 @@ extension DescribeSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` -/// to access the nested member `[MemoryDBClientTypes.Snapshot]` -/// - Returns: `[MemoryDBClientTypes.Snapshot]` extension PaginatorSequence where Input == DescribeSnapshotsInput, Output == DescribeSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotsPaginated` + /// to access the nested member `[MemoryDBClientTypes.Snapshot]` + /// - Returns: `[MemoryDBClientTypes.Snapshot]` public func snapshots() async throws -> [MemoryDBClientTypes.Snapshot] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[DescribeSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSubnetGroupsOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSubnetGroupsOutputResponse` public func describeSubnetGroupsPaginated(input: DescribeSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSubnetGroupsInput.nextToken, outputKey: \DescribeSubnetGroupsOutputResponse.nextToken, paginationFunction: self.describeSubnetGroups(input:)) } @@ -365,24 +354,23 @@ extension DescribeSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSubnetGroupsPaginated` -/// to access the nested member `[MemoryDBClientTypes.SubnetGroup]` -/// - Returns: `[MemoryDBClientTypes.SubnetGroup]` extension PaginatorSequence where Input == DescribeSubnetGroupsInput, Output == DescribeSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSubnetGroupsPaginated` + /// to access the nested member `[MemoryDBClientTypes.SubnetGroup]` + /// - Returns: `[MemoryDBClientTypes.SubnetGroup]` public func subnetGroups() async throws -> [MemoryDBClientTypes.SubnetGroup] { return try await self.asyncCompactMap { item in item.subnetGroups } } } - -/// Paginate over `[DescribeUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` extension MemoryDBClient { + /// Paginate over `[DescribeUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` public func describeUsersPaginated(input: DescribeUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUsersInput.nextToken, outputKey: \DescribeUsersOutputResponse.nextToken, paginationFunction: self.describeUsers(input:)) } @@ -398,10 +386,10 @@ extension DescribeUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` -/// to access the nested member `[MemoryDBClientTypes.User]` -/// - Returns: `[MemoryDBClientTypes.User]` extension PaginatorSequence where Input == DescribeUsersInput, Output == DescribeUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` + /// to access the nested member `[MemoryDBClientTypes.User]` + /// - Returns: `[MemoryDBClientTypes.User]` public func users() async throws -> [MemoryDBClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } diff --git a/Sources/Services/AWSMigrationHub/Paginators.swift b/Sources/Services/AWSMigrationHub/Paginators.swift index da42de318e7..aae446fbfb8 100644 --- a/Sources/Services/AWSMigrationHub/Paginators.swift +++ b/Sources/Services/AWSMigrationHub/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationStatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationStatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationStatesOutputResponse` extension MigrationHubClient { + /// Paginate over `[ListApplicationStatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationStatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationStatesOutputResponse` public func listApplicationStatesPaginated(input: ListApplicationStatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationStatesInput.nextToken, outputKey: \ListApplicationStatesOutputResponse.nextToken, paginationFunction: self.listApplicationStates(input:)) } @@ -26,24 +25,23 @@ extension ListApplicationStatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationStatesPaginated` -/// to access the nested member `[MigrationHubClientTypes.ApplicationState]` -/// - Returns: `[MigrationHubClientTypes.ApplicationState]` extension PaginatorSequence where Input == ListApplicationStatesInput, Output == ListApplicationStatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationStatesPaginated` + /// to access the nested member `[MigrationHubClientTypes.ApplicationState]` + /// - Returns: `[MigrationHubClientTypes.ApplicationState]` public func applicationStateList() async throws -> [MigrationHubClientTypes.ApplicationState] { return try await self.asyncCompactMap { item in item.applicationStateList } } } - -/// Paginate over `[ListCreatedArtifactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCreatedArtifactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCreatedArtifactsOutputResponse` extension MigrationHubClient { + /// Paginate over `[ListCreatedArtifactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCreatedArtifactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCreatedArtifactsOutputResponse` public func listCreatedArtifactsPaginated(input: ListCreatedArtifactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCreatedArtifactsInput.nextToken, outputKey: \ListCreatedArtifactsOutputResponse.nextToken, paginationFunction: self.listCreatedArtifacts(input:)) } @@ -59,24 +57,23 @@ extension ListCreatedArtifactsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCreatedArtifactsPaginated` -/// to access the nested member `[MigrationHubClientTypes.CreatedArtifact]` -/// - Returns: `[MigrationHubClientTypes.CreatedArtifact]` extension PaginatorSequence where Input == ListCreatedArtifactsInput, Output == ListCreatedArtifactsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCreatedArtifactsPaginated` + /// to access the nested member `[MigrationHubClientTypes.CreatedArtifact]` + /// - Returns: `[MigrationHubClientTypes.CreatedArtifact]` public func createdArtifactList() async throws -> [MigrationHubClientTypes.CreatedArtifact] { return try await self.asyncCompactMap { item in item.createdArtifactList } } } - -/// Paginate over `[ListDiscoveredResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDiscoveredResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDiscoveredResourcesOutputResponse` extension MigrationHubClient { + /// Paginate over `[ListDiscoveredResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDiscoveredResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDiscoveredResourcesOutputResponse` public func listDiscoveredResourcesPaginated(input: ListDiscoveredResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDiscoveredResourcesInput.nextToken, outputKey: \ListDiscoveredResourcesOutputResponse.nextToken, paginationFunction: self.listDiscoveredResources(input:)) } @@ -92,24 +89,23 @@ extension ListDiscoveredResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDiscoveredResourcesPaginated` -/// to access the nested member `[MigrationHubClientTypes.DiscoveredResource]` -/// - Returns: `[MigrationHubClientTypes.DiscoveredResource]` extension PaginatorSequence where Input == ListDiscoveredResourcesInput, Output == ListDiscoveredResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDiscoveredResourcesPaginated` + /// to access the nested member `[MigrationHubClientTypes.DiscoveredResource]` + /// - Returns: `[MigrationHubClientTypes.DiscoveredResource]` public func discoveredResourceList() async throws -> [MigrationHubClientTypes.DiscoveredResource] { return try await self.asyncCompactMap { item in item.discoveredResourceList } } } - -/// Paginate over `[ListMigrationTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMigrationTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMigrationTasksOutputResponse` extension MigrationHubClient { + /// Paginate over `[ListMigrationTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMigrationTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMigrationTasksOutputResponse` public func listMigrationTasksPaginated(input: ListMigrationTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMigrationTasksInput.nextToken, outputKey: \ListMigrationTasksOutputResponse.nextToken, paginationFunction: self.listMigrationTasks(input:)) } @@ -124,24 +120,23 @@ extension ListMigrationTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMigrationTasksPaginated` -/// to access the nested member `[MigrationHubClientTypes.MigrationTaskSummary]` -/// - Returns: `[MigrationHubClientTypes.MigrationTaskSummary]` extension PaginatorSequence where Input == ListMigrationTasksInput, Output == ListMigrationTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMigrationTasksPaginated` + /// to access the nested member `[MigrationHubClientTypes.MigrationTaskSummary]` + /// - Returns: `[MigrationHubClientTypes.MigrationTaskSummary]` public func migrationTaskSummaryList() async throws -> [MigrationHubClientTypes.MigrationTaskSummary] { return try await self.asyncCompactMap { item in item.migrationTaskSummaryList } } } - -/// Paginate over `[ListProgressUpdateStreamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProgressUpdateStreamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProgressUpdateStreamsOutputResponse` extension MigrationHubClient { + /// Paginate over `[ListProgressUpdateStreamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProgressUpdateStreamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProgressUpdateStreamsOutputResponse` public func listProgressUpdateStreamsPaginated(input: ListProgressUpdateStreamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProgressUpdateStreamsInput.nextToken, outputKey: \ListProgressUpdateStreamsOutputResponse.nextToken, paginationFunction: self.listProgressUpdateStreams(input:)) } @@ -155,10 +150,10 @@ extension ListProgressUpdateStreamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProgressUpdateStreamsPaginated` -/// to access the nested member `[MigrationHubClientTypes.ProgressUpdateStreamSummary]` -/// - Returns: `[MigrationHubClientTypes.ProgressUpdateStreamSummary]` extension PaginatorSequence where Input == ListProgressUpdateStreamsInput, Output == ListProgressUpdateStreamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProgressUpdateStreamsPaginated` + /// to access the nested member `[MigrationHubClientTypes.ProgressUpdateStreamSummary]` + /// - Returns: `[MigrationHubClientTypes.ProgressUpdateStreamSummary]` public func progressUpdateStreamSummaryList() async throws -> [MigrationHubClientTypes.ProgressUpdateStreamSummary] { return try await self.asyncCompactMap { item in item.progressUpdateStreamSummaryList } } diff --git a/Sources/Services/AWSMigrationHubConfig/Paginators.swift b/Sources/Services/AWSMigrationHubConfig/Paginators.swift index f7ad5e0693d..5fb9aad1c92 100644 --- a/Sources/Services/AWSMigrationHubConfig/Paginators.swift +++ b/Sources/Services/AWSMigrationHubConfig/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeHomeRegionControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHomeRegionControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHomeRegionControlsOutputResponse` extension MigrationHubConfigClient { + /// Paginate over `[DescribeHomeRegionControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHomeRegionControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHomeRegionControlsOutputResponse` public func describeHomeRegionControlsPaginated(input: DescribeHomeRegionControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHomeRegionControlsInput.nextToken, outputKey: \DescribeHomeRegionControlsOutputResponse.nextToken, paginationFunction: self.describeHomeRegionControls(input:)) } diff --git a/Sources/Services/AWSMigrationHubRefactorSpaces/Paginators.swift b/Sources/Services/AWSMigrationHubRefactorSpaces/Paginators.swift index b6b7f1d9b34..7c83a0d7469 100644 --- a/Sources/Services/AWSMigrationHubRefactorSpaces/Paginators.swift +++ b/Sources/Services/AWSMigrationHubRefactorSpaces/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension MigrationHubRefactorSpacesClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -26,24 +25,23 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` -/// to access the nested member `[MigrationHubRefactorSpacesClientTypes.ApplicationSummary]` -/// - Returns: `[MigrationHubRefactorSpacesClientTypes.ApplicationSummary]` extension PaginatorSequence where Input == ListApplicationsInput, Output == ListApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` + /// to access the nested member `[MigrationHubRefactorSpacesClientTypes.ApplicationSummary]` + /// - Returns: `[MigrationHubRefactorSpacesClientTypes.ApplicationSummary]` public func applicationSummaryList() async throws -> [MigrationHubRefactorSpacesClientTypes.ApplicationSummary] { return try await self.asyncCompactMap { item in item.applicationSummaryList } } } - -/// Paginate over `[ListEnvironmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnvironmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` extension MigrationHubRefactorSpacesClient { + /// Paginate over `[ListEnvironmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnvironmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentsOutputResponse` public func listEnvironmentsPaginated(input: ListEnvironmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnvironmentsInput.nextToken, outputKey: \ListEnvironmentsOutputResponse.nextToken, paginationFunction: self.listEnvironments(input:)) } @@ -57,24 +55,23 @@ extension ListEnvironmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEnvironmentsPaginated` -/// to access the nested member `[MigrationHubRefactorSpacesClientTypes.EnvironmentSummary]` -/// - Returns: `[MigrationHubRefactorSpacesClientTypes.EnvironmentSummary]` extension PaginatorSequence where Input == ListEnvironmentsInput, Output == ListEnvironmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEnvironmentsPaginated` + /// to access the nested member `[MigrationHubRefactorSpacesClientTypes.EnvironmentSummary]` + /// - Returns: `[MigrationHubRefactorSpacesClientTypes.EnvironmentSummary]` public func environmentSummaryList() async throws -> [MigrationHubRefactorSpacesClientTypes.EnvironmentSummary] { return try await self.asyncCompactMap { item in item.environmentSummaryList } } } - -/// Paginate over `[ListEnvironmentVpcsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnvironmentVpcsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentVpcsOutputResponse` extension MigrationHubRefactorSpacesClient { + /// Paginate over `[ListEnvironmentVpcsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnvironmentVpcsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnvironmentVpcsOutputResponse` public func listEnvironmentVpcsPaginated(input: ListEnvironmentVpcsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnvironmentVpcsInput.nextToken, outputKey: \ListEnvironmentVpcsOutputResponse.nextToken, paginationFunction: self.listEnvironmentVpcs(input:)) } @@ -89,24 +86,23 @@ extension ListEnvironmentVpcsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEnvironmentVpcsPaginated` -/// to access the nested member `[MigrationHubRefactorSpacesClientTypes.EnvironmentVpc]` -/// - Returns: `[MigrationHubRefactorSpacesClientTypes.EnvironmentVpc]` extension PaginatorSequence where Input == ListEnvironmentVpcsInput, Output == ListEnvironmentVpcsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEnvironmentVpcsPaginated` + /// to access the nested member `[MigrationHubRefactorSpacesClientTypes.EnvironmentVpc]` + /// - Returns: `[MigrationHubRefactorSpacesClientTypes.EnvironmentVpc]` public func environmentVpcList() async throws -> [MigrationHubRefactorSpacesClientTypes.EnvironmentVpc] { return try await self.asyncCompactMap { item in item.environmentVpcList } } } - -/// Paginate over `[ListRoutesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoutesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoutesOutputResponse` extension MigrationHubRefactorSpacesClient { + /// Paginate over `[ListRoutesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoutesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoutesOutputResponse` public func listRoutesPaginated(input: ListRoutesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoutesInput.nextToken, outputKey: \ListRoutesOutputResponse.nextToken, paginationFunction: self.listRoutes(input:)) } @@ -122,24 +118,23 @@ extension ListRoutesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRoutesPaginated` -/// to access the nested member `[MigrationHubRefactorSpacesClientTypes.RouteSummary]` -/// - Returns: `[MigrationHubRefactorSpacesClientTypes.RouteSummary]` extension PaginatorSequence where Input == ListRoutesInput, Output == ListRoutesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRoutesPaginated` + /// to access the nested member `[MigrationHubRefactorSpacesClientTypes.RouteSummary]` + /// - Returns: `[MigrationHubRefactorSpacesClientTypes.RouteSummary]` public func routeSummaryList() async throws -> [MigrationHubRefactorSpacesClientTypes.RouteSummary] { return try await self.asyncCompactMap { item in item.routeSummaryList } } } - -/// Paginate over `[ListServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` extension MigrationHubRefactorSpacesClient { + /// Paginate over `[ListServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` public func listServicesPaginated(input: ListServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesInput.nextToken, outputKey: \ListServicesOutputResponse.nextToken, paginationFunction: self.listServices(input:)) } @@ -155,10 +150,10 @@ extension ListServicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` -/// to access the nested member `[MigrationHubRefactorSpacesClientTypes.ServiceSummary]` -/// - Returns: `[MigrationHubRefactorSpacesClientTypes.ServiceSummary]` extension PaginatorSequence where Input == ListServicesInput, Output == ListServicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` + /// to access the nested member `[MigrationHubRefactorSpacesClientTypes.ServiceSummary]` + /// - Returns: `[MigrationHubRefactorSpacesClientTypes.ServiceSummary]` public func serviceSummaryList() async throws -> [MigrationHubRefactorSpacesClientTypes.ServiceSummary] { return try await self.asyncCompactMap { item in item.serviceSummaryList } } diff --git a/Sources/Services/AWSMigrationHubStrategy/Paginators.swift b/Sources/Services/AWSMigrationHubStrategy/Paginators.swift index 35d973ee683..3921ab24318 100644 --- a/Sources/Services/AWSMigrationHubStrategy/Paginators.swift +++ b/Sources/Services/AWSMigrationHubStrategy/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetServerDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetServerDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetServerDetailsOutputResponse` extension MigrationHubStrategyClient { + /// Paginate over `[GetServerDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetServerDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetServerDetailsOutputResponse` public func getServerDetailsPaginated(input: GetServerDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetServerDetailsInput.nextToken, outputKey: \GetServerDetailsOutputResponse.nextToken, paginationFunction: self.getServerDetails(input:)) } @@ -26,24 +25,23 @@ extension GetServerDetailsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getServerDetailsPaginated` -/// to access the nested member `[MigrationHubStrategyClientTypes.AssociatedApplication]` -/// - Returns: `[MigrationHubStrategyClientTypes.AssociatedApplication]` extension PaginatorSequence where Input == GetServerDetailsInput, Output == GetServerDetailsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getServerDetailsPaginated` + /// to access the nested member `[MigrationHubStrategyClientTypes.AssociatedApplication]` + /// - Returns: `[MigrationHubStrategyClientTypes.AssociatedApplication]` public func associatedApplications() async throws -> [MigrationHubStrategyClientTypes.AssociatedApplication] { return try await self.asyncCompactMap { item in item.associatedApplications } } } - -/// Paginate over `[ListApplicationComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationComponentsOutputResponse` extension MigrationHubStrategyClient { + /// Paginate over `[ListApplicationComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationComponentsOutputResponse` public func listApplicationComponentsPaginated(input: ListApplicationComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationComponentsInput.nextToken, outputKey: \ListApplicationComponentsOutputResponse.nextToken, paginationFunction: self.listApplicationComponents(input:)) } @@ -61,24 +59,23 @@ extension ListApplicationComponentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationComponentsPaginated` -/// to access the nested member `[MigrationHubStrategyClientTypes.ApplicationComponentDetail]` -/// - Returns: `[MigrationHubStrategyClientTypes.ApplicationComponentDetail]` extension PaginatorSequence where Input == ListApplicationComponentsInput, Output == ListApplicationComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationComponentsPaginated` + /// to access the nested member `[MigrationHubStrategyClientTypes.ApplicationComponentDetail]` + /// - Returns: `[MigrationHubStrategyClientTypes.ApplicationComponentDetail]` public func applicationComponentInfos() async throws -> [MigrationHubStrategyClientTypes.ApplicationComponentDetail] { return try await self.asyncCompactMap { item in item.applicationComponentInfos } } } - -/// Paginate over `[ListCollectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCollectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCollectorsOutputResponse` extension MigrationHubStrategyClient { + /// Paginate over `[ListCollectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCollectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCollectorsOutputResponse` public func listCollectorsPaginated(input: ListCollectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCollectorsInput.nextToken, outputKey: \ListCollectorsOutputResponse.nextToken, paginationFunction: self.listCollectors(input:)) } @@ -92,24 +89,23 @@ extension ListCollectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCollectorsPaginated` -/// to access the nested member `[MigrationHubStrategyClientTypes.Collector]` -/// - Returns: `[MigrationHubStrategyClientTypes.Collector]` extension PaginatorSequence where Input == ListCollectorsInput, Output == ListCollectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCollectorsPaginated` + /// to access the nested member `[MigrationHubStrategyClientTypes.Collector]` + /// - Returns: `[MigrationHubStrategyClientTypes.Collector]` public func collectors() async throws -> [MigrationHubStrategyClientTypes.Collector] { return try await self.asyncCompactMap { item in item.collectors } } } - -/// Paginate over `[ListImportFileTaskOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportFileTaskInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportFileTaskOutputResponse` extension MigrationHubStrategyClient { + /// Paginate over `[ListImportFileTaskOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportFileTaskInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportFileTaskOutputResponse` public func listImportFileTaskPaginated(input: ListImportFileTaskInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportFileTaskInput.nextToken, outputKey: \ListImportFileTaskOutputResponse.nextToken, paginationFunction: self.listImportFileTask(input:)) } @@ -123,24 +119,23 @@ extension ListImportFileTaskInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImportFileTaskPaginated` -/// to access the nested member `[MigrationHubStrategyClientTypes.ImportFileTaskInformation]` -/// - Returns: `[MigrationHubStrategyClientTypes.ImportFileTaskInformation]` extension PaginatorSequence where Input == ListImportFileTaskInput, Output == ListImportFileTaskOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImportFileTaskPaginated` + /// to access the nested member `[MigrationHubStrategyClientTypes.ImportFileTaskInformation]` + /// - Returns: `[MigrationHubStrategyClientTypes.ImportFileTaskInformation]` public func taskInfos() async throws -> [MigrationHubStrategyClientTypes.ImportFileTaskInformation] { return try await self.asyncCompactMap { item in item.taskInfos } } } - -/// Paginate over `[ListServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServersOutputResponse` extension MigrationHubStrategyClient { + /// Paginate over `[ListServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServersOutputResponse` public func listServersPaginated(input: ListServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServersInput.nextToken, outputKey: \ListServersOutputResponse.nextToken, paginationFunction: self.listServers(input:)) } @@ -158,10 +153,10 @@ extension ListServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServersPaginated` -/// to access the nested member `[MigrationHubStrategyClientTypes.ServerDetail]` -/// - Returns: `[MigrationHubStrategyClientTypes.ServerDetail]` extension PaginatorSequence where Input == ListServersInput, Output == ListServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServersPaginated` + /// to access the nested member `[MigrationHubStrategyClientTypes.ServerDetail]` + /// - Returns: `[MigrationHubStrategyClientTypes.ServerDetail]` public func serverInfos() async throws -> [MigrationHubStrategyClientTypes.ServerDetail] { return try await self.asyncCompactMap { item in item.serverInfos } } diff --git a/Sources/Services/AWSMobile/Paginators.swift b/Sources/Services/AWSMobile/Paginators.swift index e52db8142ca..e32bcf53d7b 100644 --- a/Sources/Services/AWSMobile/Paginators.swift +++ b/Sources/Services/AWSMobile/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBundlesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBundlesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBundlesOutputResponse` extension MobileClient { + /// Paginate over `[ListBundlesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBundlesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBundlesOutputResponse` public func listBundlesPaginated(input: ListBundlesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBundlesInput.nextToken, outputKey: \ListBundlesOutputResponse.nextToken, paginationFunction: self.listBundles(input:)) } @@ -24,16 +23,15 @@ extension ListBundlesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension MobileClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } diff --git a/Sources/Services/AWSMq/Paginators.swift b/Sources/Services/AWSMq/Paginators.swift index 88cf95ea093..a5bcde46b5e 100644 --- a/Sources/Services/AWSMq/Paginators.swift +++ b/Sources/Services/AWSMq/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBrokersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBrokersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBrokersOutputResponse` extension MqClient { + /// Paginate over `[ListBrokersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBrokersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBrokersOutputResponse` public func listBrokersPaginated(input: ListBrokersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBrokersInput.nextToken, outputKey: \ListBrokersOutputResponse.nextToken, paginationFunction: self.listBrokers(input:)) } @@ -25,10 +24,10 @@ extension ListBrokersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBrokersPaginated` -/// to access the nested member `[MqClientTypes.BrokerSummary]` -/// - Returns: `[MqClientTypes.BrokerSummary]` extension PaginatorSequence where Input == ListBrokersInput, Output == ListBrokersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBrokersPaginated` + /// to access the nested member `[MqClientTypes.BrokerSummary]` + /// - Returns: `[MqClientTypes.BrokerSummary]` public func brokerSummaries() async throws -> [MqClientTypes.BrokerSummary] { return try await self.asyncCompactMap { item in item.brokerSummaries } } diff --git a/Sources/Services/AWSNeptune/Paginators.swift b/Sources/Services/AWSNeptune/Paginators.swift index 575d23328cb..c42c05803ee 100644 --- a/Sources/Services/AWSNeptune/Paginators.swift +++ b/Sources/Services/AWSNeptune/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDBClusterEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterEndpointsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBClusterEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterEndpointsOutputResponse` public func describeDBClusterEndpointsPaginated(input: DescribeDBClusterEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterEndpointsInput.marker, outputKey: \DescribeDBClusterEndpointsOutputResponse.marker, paginationFunction: self.describeDBClusterEndpoints(input:)) } @@ -28,24 +27,23 @@ extension DescribeDBClusterEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterEndpointsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBClusterEndpoint]` -/// - Returns: `[NeptuneClientTypes.DBClusterEndpoint]` extension PaginatorSequence where Input == DescribeDBClusterEndpointsInput, Output == DescribeDBClusterEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterEndpointsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBClusterEndpoint]` + /// - Returns: `[NeptuneClientTypes.DBClusterEndpoint]` public func dbClusterEndpoints() async throws -> [NeptuneClientTypes.DBClusterEndpoint] { return try await self.asyncCompactMap { item in item.dbClusterEndpoints } } } - -/// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` public func describeDBClusterParameterGroupsPaginated(input: DescribeDBClusterParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParameterGroupsInput.marker, outputKey: \DescribeDBClusterParameterGroupsOutputResponse.marker, paginationFunction: self.describeDBClusterParameterGroups(input:)) } @@ -61,24 +59,23 @@ extension DescribeDBClusterParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBClusterParameterGroup]` -/// - Returns: `[NeptuneClientTypes.DBClusterParameterGroup]` extension PaginatorSequence where Input == DescribeDBClusterParameterGroupsInput, Output == DescribeDBClusterParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBClusterParameterGroup]` + /// - Returns: `[NeptuneClientTypes.DBClusterParameterGroup]` public func dbClusterParameterGroups() async throws -> [NeptuneClientTypes.DBClusterParameterGroup] { return try await self.asyncCompactMap { item in item.dbClusterParameterGroups } } } - -/// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` public func describeDBClusterParametersPaginated(input: DescribeDBClusterParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParametersInput.marker, outputKey: \DescribeDBClusterParametersOutputResponse.marker, paginationFunction: self.describeDBClusterParameters(input:)) } @@ -95,24 +92,23 @@ extension DescribeDBClusterParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` -/// to access the nested member `[NeptuneClientTypes.Parameter]` -/// - Returns: `[NeptuneClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDBClusterParametersInput, Output == DescribeDBClusterParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` + /// to access the nested member `[NeptuneClientTypes.Parameter]` + /// - Returns: `[NeptuneClientTypes.Parameter]` public func parameters() async throws -> [NeptuneClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeDBClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` public func describeDBClustersPaginated(input: DescribeDBClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClustersInput.marker, outputKey: \DescribeDBClustersOutputResponse.marker, paginationFunction: self.describeDBClusters(input:)) } @@ -128,24 +124,23 @@ extension DescribeDBClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` -/// to access the nested member `[NeptuneClientTypes.DBCluster]` -/// - Returns: `[NeptuneClientTypes.DBCluster]` extension PaginatorSequence where Input == DescribeDBClustersInput, Output == DescribeDBClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` + /// to access the nested member `[NeptuneClientTypes.DBCluster]` + /// - Returns: `[NeptuneClientTypes.DBCluster]` public func dbClusters() async throws -> [NeptuneClientTypes.DBCluster] { return try await self.asyncCompactMap { item in item.dbClusters } } } - -/// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` public func describeDBClusterSnapshotsPaginated(input: DescribeDBClusterSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterSnapshotsInput.marker, outputKey: \DescribeDBClusterSnapshotsOutputResponse.marker, paginationFunction: self.describeDBClusterSnapshots(input:)) } @@ -165,24 +160,23 @@ extension DescribeDBClusterSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBClusterSnapshot]` -/// - Returns: `[NeptuneClientTypes.DBClusterSnapshot]` extension PaginatorSequence where Input == DescribeDBClusterSnapshotsInput, Output == DescribeDBClusterSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBClusterSnapshot]` + /// - Returns: `[NeptuneClientTypes.DBClusterSnapshot]` public func dbClusterSnapshots() async throws -> [NeptuneClientTypes.DBClusterSnapshot] { return try await self.asyncCompactMap { item in item.dbClusterSnapshots } } } - -/// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` public func describeDBEngineVersionsPaginated(input: DescribeDBEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBEngineVersionsInput.marker, outputKey: \DescribeDBEngineVersionsOutputResponse.marker, paginationFunction: self.describeDBEngineVersions(input:)) } @@ -203,24 +197,23 @@ extension DescribeDBEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBEngineVersion]` -/// - Returns: `[NeptuneClientTypes.DBEngineVersion]` extension PaginatorSequence where Input == DescribeDBEngineVersionsInput, Output == DescribeDBEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBEngineVersion]` + /// - Returns: `[NeptuneClientTypes.DBEngineVersion]` public func dbEngineVersions() async throws -> [NeptuneClientTypes.DBEngineVersion] { return try await self.asyncCompactMap { item in item.dbEngineVersions } } } - -/// Paginate over `[DescribeDBInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` public func describeDBInstancesPaginated(input: DescribeDBInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBInstancesInput.marker, outputKey: \DescribeDBInstancesOutputResponse.marker, paginationFunction: self.describeDBInstances(input:)) } @@ -236,24 +229,23 @@ extension DescribeDBInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` -/// to access the nested member `[NeptuneClientTypes.DBInstance]` -/// - Returns: `[NeptuneClientTypes.DBInstance]` extension PaginatorSequence where Input == DescribeDBInstancesInput, Output == DescribeDBInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` + /// to access the nested member `[NeptuneClientTypes.DBInstance]` + /// - Returns: `[NeptuneClientTypes.DBInstance]` public func dbInstances() async throws -> [NeptuneClientTypes.DBInstance] { return try await self.asyncCompactMap { item in item.dbInstances } } } - -/// Paginate over `[DescribeDBParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParameterGroupsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParameterGroupsOutputResponse` public func describeDBParameterGroupsPaginated(input: DescribeDBParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBParameterGroupsInput.marker, outputKey: \DescribeDBParameterGroupsOutputResponse.marker, paginationFunction: self.describeDBParameterGroups(input:)) } @@ -269,24 +261,23 @@ extension DescribeDBParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBParameterGroupsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBParameterGroup]` -/// - Returns: `[NeptuneClientTypes.DBParameterGroup]` extension PaginatorSequence where Input == DescribeDBParameterGroupsInput, Output == DescribeDBParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBParameterGroupsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBParameterGroup]` + /// - Returns: `[NeptuneClientTypes.DBParameterGroup]` public func dbParameterGroups() async throws -> [NeptuneClientTypes.DBParameterGroup] { return try await self.asyncCompactMap { item in item.dbParameterGroups } } } - -/// Paginate over `[DescribeDBParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParametersOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParametersOutputResponse` public func describeDBParametersPaginated(input: DescribeDBParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBParametersInput.marker, outputKey: \DescribeDBParametersOutputResponse.marker, paginationFunction: self.describeDBParameters(input:)) } @@ -303,24 +294,23 @@ extension DescribeDBParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBParametersPaginated` -/// to access the nested member `[NeptuneClientTypes.Parameter]` -/// - Returns: `[NeptuneClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDBParametersInput, Output == DescribeDBParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBParametersPaginated` + /// to access the nested member `[NeptuneClientTypes.Parameter]` + /// - Returns: `[NeptuneClientTypes.Parameter]` public func parameters() async throws -> [NeptuneClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` public func describeDBSubnetGroupsPaginated(input: DescribeDBSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBSubnetGroupsInput.marker, outputKey: \DescribeDBSubnetGroupsOutputResponse.marker, paginationFunction: self.describeDBSubnetGroups(input:)) } @@ -336,24 +326,23 @@ extension DescribeDBSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` -/// to access the nested member `[NeptuneClientTypes.DBSubnetGroup]` -/// - Returns: `[NeptuneClientTypes.DBSubnetGroup]` extension PaginatorSequence where Input == DescribeDBSubnetGroupsInput, Output == DescribeDBSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` + /// to access the nested member `[NeptuneClientTypes.DBSubnetGroup]` + /// - Returns: `[NeptuneClientTypes.DBSubnetGroup]` public func dbSubnetGroups() async throws -> [NeptuneClientTypes.DBSubnetGroup] { return try await self.asyncCompactMap { item in item.dbSubnetGroups } } } - -/// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` public func describeEngineDefaultParametersPaginated(input: DescribeEngineDefaultParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEngineDefaultParametersInput.marker, outputKey: \DescribeEngineDefaultParametersOutputResponse.engineDefaults?.marker, paginationFunction: self.describeEngineDefaultParameters(input:)) } @@ -369,24 +358,23 @@ extension DescribeEngineDefaultParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` -/// to access the nested member `[NeptuneClientTypes.Parameter]` -/// - Returns: `[NeptuneClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeEngineDefaultParametersInput, Output == DescribeEngineDefaultParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` + /// to access the nested member `[NeptuneClientTypes.Parameter]` + /// - Returns: `[NeptuneClientTypes.Parameter]` public func parameters() async throws -> [NeptuneClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.engineDefaults?.parameters } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -407,24 +395,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[NeptuneClientTypes.Event]` -/// - Returns: `[NeptuneClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[NeptuneClientTypes.Event]` + /// - Returns: `[NeptuneClientTypes.Event]` public func events() async throws -> [NeptuneClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` public func describeEventSubscriptionsPaginated(input: DescribeEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventSubscriptionsInput.marker, outputKey: \DescribeEventSubscriptionsOutputResponse.marker, paginationFunction: self.describeEventSubscriptions(input:)) } @@ -440,24 +427,23 @@ extension DescribeEventSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` -/// to access the nested member `[NeptuneClientTypes.EventSubscription]` -/// - Returns: `[NeptuneClientTypes.EventSubscription]` extension PaginatorSequence where Input == DescribeEventSubscriptionsInput, Output == DescribeEventSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` + /// to access the nested member `[NeptuneClientTypes.EventSubscription]` + /// - Returns: `[NeptuneClientTypes.EventSubscription]` public func eventSubscriptionsList() async throws -> [NeptuneClientTypes.EventSubscription] { return try await self.asyncCompactMap { item in item.eventSubscriptionsList } } } - -/// Paginate over `[DescribeGlobalClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGlobalClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeGlobalClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGlobalClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` public func describeGlobalClustersPaginated(input: DescribeGlobalClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGlobalClustersInput.marker, outputKey: \DescribeGlobalClustersOutputResponse.marker, paginationFunction: self.describeGlobalClusters(input:)) } @@ -472,24 +458,23 @@ extension DescribeGlobalClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` -/// to access the nested member `[NeptuneClientTypes.GlobalCluster]` -/// - Returns: `[NeptuneClientTypes.GlobalCluster]` extension PaginatorSequence where Input == DescribeGlobalClustersInput, Output == DescribeGlobalClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` + /// to access the nested member `[NeptuneClientTypes.GlobalCluster]` + /// - Returns: `[NeptuneClientTypes.GlobalCluster]` public func globalClusters() async throws -> [NeptuneClientTypes.GlobalCluster] { return try await self.asyncCompactMap { item in item.globalClusters } } } - -/// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` public func describeOrderableDBInstanceOptionsPaginated(input: DescribeOrderableDBInstanceOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrderableDBInstanceOptionsInput.marker, outputKey: \DescribeOrderableDBInstanceOptionsOutputResponse.marker, paginationFunction: self.describeOrderableDBInstanceOptions(input:)) } @@ -509,24 +494,23 @@ extension DescribeOrderableDBInstanceOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` -/// to access the nested member `[NeptuneClientTypes.OrderableDBInstanceOption]` -/// - Returns: `[NeptuneClientTypes.OrderableDBInstanceOption]` extension PaginatorSequence where Input == DescribeOrderableDBInstanceOptionsInput, Output == DescribeOrderableDBInstanceOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` + /// to access the nested member `[NeptuneClientTypes.OrderableDBInstanceOption]` + /// - Returns: `[NeptuneClientTypes.OrderableDBInstanceOption]` public func orderableDBInstanceOptions() async throws -> [NeptuneClientTypes.OrderableDBInstanceOption] { return try await self.asyncCompactMap { item in item.orderableDBInstanceOptions } } } - -/// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` extension NeptuneClient { + /// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` public func describePendingMaintenanceActionsPaginated(input: DescribePendingMaintenanceActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePendingMaintenanceActionsInput.marker, outputKey: \DescribePendingMaintenanceActionsOutputResponse.marker, paginationFunction: self.describePendingMaintenanceActions(input:)) } @@ -542,10 +526,10 @@ extension DescribePendingMaintenanceActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` -/// to access the nested member `[NeptuneClientTypes.ResourcePendingMaintenanceActions]` -/// - Returns: `[NeptuneClientTypes.ResourcePendingMaintenanceActions]` extension PaginatorSequence where Input == DescribePendingMaintenanceActionsInput, Output == DescribePendingMaintenanceActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` + /// to access the nested member `[NeptuneClientTypes.ResourcePendingMaintenanceActions]` + /// - Returns: `[NeptuneClientTypes.ResourcePendingMaintenanceActions]` public func pendingMaintenanceActions() async throws -> [NeptuneClientTypes.ResourcePendingMaintenanceActions] { return try await self.asyncCompactMap { item in item.pendingMaintenanceActions } } diff --git a/Sources/Services/AWSNetworkFirewall/Paginators.swift b/Sources/Services/AWSNetworkFirewall/Paginators.swift index 51600be2d08..ac12cc525b8 100644 --- a/Sources/Services/AWSNetworkFirewall/Paginators.swift +++ b/Sources/Services/AWSNetworkFirewall/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListFirewallPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallPoliciesOutputResponse` extension NetworkFirewallClient { + /// Paginate over `[ListFirewallPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallPoliciesOutputResponse` public func listFirewallPoliciesPaginated(input: ListFirewallPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallPoliciesInput.nextToken, outputKey: \ListFirewallPoliciesOutputResponse.nextToken, paginationFunction: self.listFirewallPolicies(input:)) } @@ -25,24 +24,23 @@ extension ListFirewallPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFirewallPoliciesPaginated` -/// to access the nested member `[NetworkFirewallClientTypes.FirewallPolicyMetadata]` -/// - Returns: `[NetworkFirewallClientTypes.FirewallPolicyMetadata]` extension PaginatorSequence where Input == ListFirewallPoliciesInput, Output == ListFirewallPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFirewallPoliciesPaginated` + /// to access the nested member `[NetworkFirewallClientTypes.FirewallPolicyMetadata]` + /// - Returns: `[NetworkFirewallClientTypes.FirewallPolicyMetadata]` public func firewallPolicies() async throws -> [NetworkFirewallClientTypes.FirewallPolicyMetadata] { return try await self.asyncCompactMap { item in item.firewallPolicies } } } - -/// Paginate over `[ListFirewallsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallsOutputResponse` extension NetworkFirewallClient { + /// Paginate over `[ListFirewallsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallsOutputResponse` public func listFirewallsPaginated(input: ListFirewallsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallsInput.nextToken, outputKey: \ListFirewallsOutputResponse.nextToken, paginationFunction: self.listFirewalls(input:)) } @@ -57,24 +55,23 @@ extension ListFirewallsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFirewallsPaginated` -/// to access the nested member `[NetworkFirewallClientTypes.FirewallMetadata]` -/// - Returns: `[NetworkFirewallClientTypes.FirewallMetadata]` extension PaginatorSequence where Input == ListFirewallsInput, Output == ListFirewallsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFirewallsPaginated` + /// to access the nested member `[NetworkFirewallClientTypes.FirewallMetadata]` + /// - Returns: `[NetworkFirewallClientTypes.FirewallMetadata]` public func firewalls() async throws -> [NetworkFirewallClientTypes.FirewallMetadata] { return try await self.asyncCompactMap { item in item.firewalls } } } - -/// Paginate over `[ListRuleGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRuleGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRuleGroupsOutputResponse` extension NetworkFirewallClient { + /// Paginate over `[ListRuleGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRuleGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRuleGroupsOutputResponse` public func listRuleGroupsPaginated(input: ListRuleGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRuleGroupsInput.nextToken, outputKey: \ListRuleGroupsOutputResponse.nextToken, paginationFunction: self.listRuleGroups(input:)) } @@ -91,24 +88,23 @@ extension ListRuleGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRuleGroupsPaginated` -/// to access the nested member `[NetworkFirewallClientTypes.RuleGroupMetadata]` -/// - Returns: `[NetworkFirewallClientTypes.RuleGroupMetadata]` extension PaginatorSequence where Input == ListRuleGroupsInput, Output == ListRuleGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRuleGroupsPaginated` + /// to access the nested member `[NetworkFirewallClientTypes.RuleGroupMetadata]` + /// - Returns: `[NetworkFirewallClientTypes.RuleGroupMetadata]` public func ruleGroups() async throws -> [NetworkFirewallClientTypes.RuleGroupMetadata] { return try await self.asyncCompactMap { item in item.ruleGroups } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension NetworkFirewallClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -123,10 +119,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[NetworkFirewallClientTypes.Tag]` -/// - Returns: `[NetworkFirewallClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[NetworkFirewallClientTypes.Tag]` + /// - Returns: `[NetworkFirewallClientTypes.Tag]` public func tags() async throws -> [NetworkFirewallClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSNetworkFirewall/models/Models.swift b/Sources/Services/AWSNetworkFirewall/models/Models.swift index 786a6cea308..af6707dbb24 100644 --- a/Sources/Services/AWSNetworkFirewall/models/Models.swift +++ b/Sources/Services/AWSNetworkFirewall/models/Models.swift @@ -59,12 +59,16 @@ extension NetworkFirewallClientTypes.Address: Swift.Codable { extension NetworkFirewallClientTypes { /// A single IP address specification. This is used in the [MatchAttributes] source and destination specifications. public struct Address: Swift.Equatable { - /// Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4. Examples: + /// Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6. Examples: /// /// * To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32. /// /// * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. /// + /// * To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. + /// + /// * To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64. + /// /// /// For more information about CIDR notation, see the Wikipedia entry [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). /// This member is required. @@ -4038,12 +4042,16 @@ extension NetworkFirewallClientTypes.Header: Swift.Codable { extension NetworkFirewallClientTypes { /// The basic rule criteria for Network Firewall to use to inspect packet headers in stateful traffic flow inspection. Traffic flows that match the criteria are a match for the corresponding [StatefulRule]. public struct Header: Swift.Equatable { - /// The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY. Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4. Examples: + /// The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY. Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6. Examples: /// /// * To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32. /// /// * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. /// + /// * To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. + /// + /// * To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64. + /// /// /// For more information about CIDR notation, see the Wikipedia entry [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). /// This member is required. @@ -4057,12 +4065,16 @@ extension NetworkFirewallClientTypes { /// The protocol to inspect for. To specify all, you can use IP, because all traffic on Amazon Web Services and on the internet is IP. /// This member is required. public var `protocol`: NetworkFirewallClientTypes.StatefulRuleProtocol? - /// The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY. Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4. Examples: + /// The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY. Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6. Examples: /// /// * To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32. /// /// * To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. /// + /// * To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. + /// + /// * To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64. + /// /// /// For more information about CIDR notation, see the Wikipedia entry [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). /// This member is required. @@ -4091,6 +4103,38 @@ extension NetworkFirewallClientTypes { } +extension NetworkFirewallClientTypes { + public enum IPAddressType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case dualstack + case ipv4 + case sdkUnknown(Swift.String) + + public static var allCases: [IPAddressType] { + return [ + .dualstack, + .ipv4, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .dualstack: return "DUALSTACK" + case .ipv4: return "IPV4" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = IPAddressType(rawValue: rawValue) ?? IPAddressType.sdkUnknown(rawValue) + } + } +} + extension NetworkFirewallClientTypes.IPSet: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case definition = "Definition" @@ -7016,6 +7060,7 @@ extension NetworkFirewallClientTypes { case alert case drop case pass + case reject case sdkUnknown(Swift.String) public static var allCases: [StatefulAction] { @@ -7023,6 +7068,7 @@ extension NetworkFirewallClientTypes { .alert, .drop, .pass, + .reject, .sdkUnknown("") ] } @@ -7035,6 +7081,7 @@ extension NetworkFirewallClientTypes { case .alert: return "ALERT" case .drop: return "DROP" case .pass: return "PASS" + case .reject: return "REJECT" case let .sdkUnknown(s): return s } } @@ -7148,6 +7195,8 @@ extension NetworkFirewallClientTypes { /// * DROP - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the [Firewall][LoggingConfiguration]. /// /// * ALERT - Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the [Firewall][LoggingConfiguration]. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ALERT action, verify in the logs that the rule is filtering as you want, then change the action to DROP. + /// + /// * REJECT - Drops TCP traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a RST bit contained in the TCP header flags. Also sends an alert log mesage if alert logging is configured in the [Firewall][LoggingConfiguration]. REJECT isn't currently available for use with IMAP and FTP protocols. /// This member is required. public var action: NetworkFirewallClientTypes.StatefulAction? /// The stateful inspection criteria for this rule, used to inspect traffic flows. @@ -7610,11 +7659,15 @@ extension NetworkFirewallClientTypes { extension NetworkFirewallClientTypes.SubnetMapping: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case ipAddressType = "IPAddressType" case subnetId = "SubnetId" } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let ipAddressType = self.ipAddressType { + try encodeContainer.encode(ipAddressType.rawValue, forKey: .ipAddressType) + } if let subnetId = self.subnetId { try encodeContainer.encode(subnetId, forKey: .subnetId) } @@ -7624,20 +7677,26 @@ extension NetworkFirewallClientTypes.SubnetMapping: Swift.Codable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let subnetIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .subnetId) subnetId = subnetIdDecoded + let ipAddressTypeDecoded = try containerValues.decodeIfPresent(NetworkFirewallClientTypes.IPAddressType.self, forKey: .ipAddressType) + ipAddressType = ipAddressTypeDecoded } } extension NetworkFirewallClientTypes { /// The ID for a subnet that you want to associate with the firewall. This is used with [CreateFirewall] and [AssociateSubnets]. Network Firewall creates an instance of the associated firewall in each subnet that you specify, to filter traffic in the subnet's Availability Zone. public struct SubnetMapping: Swift.Equatable { + /// The subnet's IP address type. You can't change the IP address type after you create the subnet. + public var ipAddressType: NetworkFirewallClientTypes.IPAddressType? /// The unique identifier for the subnet. /// This member is required. public var subnetId: Swift.String? public init ( + ipAddressType: NetworkFirewallClientTypes.IPAddressType? = nil, subnetId: Swift.String? = nil ) { + self.ipAddressType = ipAddressType self.subnetId = subnetId } } diff --git a/Sources/Services/AWSNetworkManager/EndpointResolver.swift b/Sources/Services/AWSNetworkManager/EndpointResolver.swift index e3c40a250aa..1d795f4b5e0 100644 --- a/Sources/Services/AWSNetworkManager/EndpointResolver.swift +++ b/Sources/Services/AWSNetworkManager/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://networkmanager.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://networkmanager.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"networkmanager\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://networkmanager.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://networkmanager.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"networkmanager\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://networkmanager.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSNetworkManager/Paginators.swift b/Sources/Services/AWSNetworkManager/Paginators.swift index b6423460b94..781c5ad5828 100644 --- a/Sources/Services/AWSNetworkManager/Paginators.swift +++ b/Sources/Services/AWSNetworkManager/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeGlobalNetworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGlobalNetworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalNetworksOutputResponse` extension NetworkManagerClient { + /// Paginate over `[DescribeGlobalNetworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGlobalNetworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalNetworksOutputResponse` public func describeGlobalNetworksPaginated(input: DescribeGlobalNetworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGlobalNetworksInput.nextToken, outputKey: \DescribeGlobalNetworksOutputResponse.nextToken, paginationFunction: self.describeGlobalNetworks(input:)) } @@ -26,24 +25,23 @@ extension DescribeGlobalNetworksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGlobalNetworksPaginated` -/// to access the nested member `[NetworkManagerClientTypes.GlobalNetwork]` -/// - Returns: `[NetworkManagerClientTypes.GlobalNetwork]` extension PaginatorSequence where Input == DescribeGlobalNetworksInput, Output == DescribeGlobalNetworksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGlobalNetworksPaginated` + /// to access the nested member `[NetworkManagerClientTypes.GlobalNetwork]` + /// - Returns: `[NetworkManagerClientTypes.GlobalNetwork]` public func globalNetworks() async throws -> [NetworkManagerClientTypes.GlobalNetwork] { return try await self.asyncCompactMap { item in item.globalNetworks } } } - -/// Paginate over `[GetConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConnectionsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConnectionsOutputResponse` public func getConnectionsPaginated(input: GetConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConnectionsInput.nextToken, outputKey: \GetConnectionsOutputResponse.nextToken, paginationFunction: self.getConnections(input:)) } @@ -60,24 +58,23 @@ extension GetConnectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getConnectionsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Connection]` -/// - Returns: `[NetworkManagerClientTypes.Connection]` extension PaginatorSequence where Input == GetConnectionsInput, Output == GetConnectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getConnectionsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Connection]` + /// - Returns: `[NetworkManagerClientTypes.Connection]` public func connections() async throws -> [NetworkManagerClientTypes.Connection] { return try await self.asyncCompactMap { item in item.connections } } } - -/// Paginate over `[GetConnectPeerAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConnectPeerAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConnectPeerAssociationsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetConnectPeerAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConnectPeerAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConnectPeerAssociationsOutputResponse` public func getConnectPeerAssociationsPaginated(input: GetConnectPeerAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConnectPeerAssociationsInput.nextToken, outputKey: \GetConnectPeerAssociationsOutputResponse.nextToken, paginationFunction: self.getConnectPeerAssociations(input:)) } @@ -93,24 +90,23 @@ extension GetConnectPeerAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getConnectPeerAssociationsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.ConnectPeerAssociation]` -/// - Returns: `[NetworkManagerClientTypes.ConnectPeerAssociation]` extension PaginatorSequence where Input == GetConnectPeerAssociationsInput, Output == GetConnectPeerAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getConnectPeerAssociationsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.ConnectPeerAssociation]` + /// - Returns: `[NetworkManagerClientTypes.ConnectPeerAssociation]` public func connectPeerAssociations() async throws -> [NetworkManagerClientTypes.ConnectPeerAssociation] { return try await self.asyncCompactMap { item in item.connectPeerAssociations } } } - -/// Paginate over `[GetCoreNetworkChangeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCoreNetworkChangeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCoreNetworkChangeEventsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetCoreNetworkChangeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCoreNetworkChangeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCoreNetworkChangeEventsOutputResponse` public func getCoreNetworkChangeEventsPaginated(input: GetCoreNetworkChangeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCoreNetworkChangeEventsInput.nextToken, outputKey: \GetCoreNetworkChangeEventsOutputResponse.nextToken, paginationFunction: self.getCoreNetworkChangeEvents(input:)) } @@ -126,24 +122,23 @@ extension GetCoreNetworkChangeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getCoreNetworkChangeEventsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.CoreNetworkChangeEvent]` -/// - Returns: `[NetworkManagerClientTypes.CoreNetworkChangeEvent]` extension PaginatorSequence where Input == GetCoreNetworkChangeEventsInput, Output == GetCoreNetworkChangeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getCoreNetworkChangeEventsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.CoreNetworkChangeEvent]` + /// - Returns: `[NetworkManagerClientTypes.CoreNetworkChangeEvent]` public func coreNetworkChangeEvents() async throws -> [NetworkManagerClientTypes.CoreNetworkChangeEvent] { return try await self.asyncCompactMap { item in item.coreNetworkChangeEvents } } } - -/// Paginate over `[GetCoreNetworkChangeSetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCoreNetworkChangeSetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCoreNetworkChangeSetOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetCoreNetworkChangeSetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCoreNetworkChangeSetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCoreNetworkChangeSetOutputResponse` public func getCoreNetworkChangeSetPaginated(input: GetCoreNetworkChangeSetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCoreNetworkChangeSetInput.nextToken, outputKey: \GetCoreNetworkChangeSetOutputResponse.nextToken, paginationFunction: self.getCoreNetworkChangeSet(input:)) } @@ -159,24 +154,23 @@ extension GetCoreNetworkChangeSetInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getCoreNetworkChangeSetPaginated` -/// to access the nested member `[NetworkManagerClientTypes.CoreNetworkChange]` -/// - Returns: `[NetworkManagerClientTypes.CoreNetworkChange]` extension PaginatorSequence where Input == GetCoreNetworkChangeSetInput, Output == GetCoreNetworkChangeSetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getCoreNetworkChangeSetPaginated` + /// to access the nested member `[NetworkManagerClientTypes.CoreNetworkChange]` + /// - Returns: `[NetworkManagerClientTypes.CoreNetworkChange]` public func coreNetworkChanges() async throws -> [NetworkManagerClientTypes.CoreNetworkChange] { return try await self.asyncCompactMap { item in item.coreNetworkChanges } } } - -/// Paginate over `[GetCustomerGatewayAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCustomerGatewayAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCustomerGatewayAssociationsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetCustomerGatewayAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCustomerGatewayAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCustomerGatewayAssociationsOutputResponse` public func getCustomerGatewayAssociationsPaginated(input: GetCustomerGatewayAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCustomerGatewayAssociationsInput.nextToken, outputKey: \GetCustomerGatewayAssociationsOutputResponse.nextToken, paginationFunction: self.getCustomerGatewayAssociations(input:)) } @@ -192,24 +186,23 @@ extension GetCustomerGatewayAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getCustomerGatewayAssociationsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.CustomerGatewayAssociation]` -/// - Returns: `[NetworkManagerClientTypes.CustomerGatewayAssociation]` extension PaginatorSequence where Input == GetCustomerGatewayAssociationsInput, Output == GetCustomerGatewayAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getCustomerGatewayAssociationsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.CustomerGatewayAssociation]` + /// - Returns: `[NetworkManagerClientTypes.CustomerGatewayAssociation]` public func customerGatewayAssociations() async throws -> [NetworkManagerClientTypes.CustomerGatewayAssociation] { return try await self.asyncCompactMap { item in item.customerGatewayAssociations } } } - -/// Paginate over `[GetDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDevicesOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDevicesOutputResponse` public func getDevicesPaginated(input: GetDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDevicesInput.nextToken, outputKey: \GetDevicesOutputResponse.nextToken, paginationFunction: self.getDevices(input:)) } @@ -226,24 +219,23 @@ extension GetDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getDevicesPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Device]` -/// - Returns: `[NetworkManagerClientTypes.Device]` extension PaginatorSequence where Input == GetDevicesInput, Output == GetDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getDevicesPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Device]` + /// - Returns: `[NetworkManagerClientTypes.Device]` public func devices() async throws -> [NetworkManagerClientTypes.Device] { return try await self.asyncCompactMap { item in item.devices } } } - -/// Paginate over `[GetLinkAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLinkAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLinkAssociationsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetLinkAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLinkAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLinkAssociationsOutputResponse` public func getLinkAssociationsPaginated(input: GetLinkAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLinkAssociationsInput.nextToken, outputKey: \GetLinkAssociationsOutputResponse.nextToken, paginationFunction: self.getLinkAssociations(input:)) } @@ -260,24 +252,23 @@ extension GetLinkAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getLinkAssociationsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.LinkAssociation]` -/// - Returns: `[NetworkManagerClientTypes.LinkAssociation]` extension PaginatorSequence where Input == GetLinkAssociationsInput, Output == GetLinkAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getLinkAssociationsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.LinkAssociation]` + /// - Returns: `[NetworkManagerClientTypes.LinkAssociation]` public func linkAssociations() async throws -> [NetworkManagerClientTypes.LinkAssociation] { return try await self.asyncCompactMap { item in item.linkAssociations } } } - -/// Paginate over `[GetLinksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLinksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLinksOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetLinksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLinksOutputResponse` public func getLinksPaginated(input: GetLinksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLinksInput.nextToken, outputKey: \GetLinksOutputResponse.nextToken, paginationFunction: self.getLinks(input:)) } @@ -296,24 +287,23 @@ extension GetLinksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getLinksPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Link]` -/// - Returns: `[NetworkManagerClientTypes.Link]` extension PaginatorSequence where Input == GetLinksInput, Output == GetLinksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getLinksPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Link]` + /// - Returns: `[NetworkManagerClientTypes.Link]` public func links() async throws -> [NetworkManagerClientTypes.Link] { return try await self.asyncCompactMap { item in item.links } } } - -/// Paginate over `[GetNetworkResourceCountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetNetworkResourceCountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourceCountsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetNetworkResourceCountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetNetworkResourceCountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourceCountsOutputResponse` public func getNetworkResourceCountsPaginated(input: GetNetworkResourceCountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetNetworkResourceCountsInput.nextToken, outputKey: \GetNetworkResourceCountsOutputResponse.nextToken, paginationFunction: self.getNetworkResourceCounts(input:)) } @@ -329,24 +319,23 @@ extension GetNetworkResourceCountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getNetworkResourceCountsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.NetworkResourceCount]` -/// - Returns: `[NetworkManagerClientTypes.NetworkResourceCount]` extension PaginatorSequence where Input == GetNetworkResourceCountsInput, Output == GetNetworkResourceCountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getNetworkResourceCountsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.NetworkResourceCount]` + /// - Returns: `[NetworkManagerClientTypes.NetworkResourceCount]` public func networkResourceCounts() async throws -> [NetworkManagerClientTypes.NetworkResourceCount] { return try await self.asyncCompactMap { item in item.networkResourceCounts } } } - -/// Paginate over `[GetNetworkResourceRelationshipsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetNetworkResourceRelationshipsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourceRelationshipsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetNetworkResourceRelationshipsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetNetworkResourceRelationshipsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourceRelationshipsOutputResponse` public func getNetworkResourceRelationshipsPaginated(input: GetNetworkResourceRelationshipsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetNetworkResourceRelationshipsInput.nextToken, outputKey: \GetNetworkResourceRelationshipsOutputResponse.nextToken, paginationFunction: self.getNetworkResourceRelationships(input:)) } @@ -367,24 +356,23 @@ extension GetNetworkResourceRelationshipsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getNetworkResourceRelationshipsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Relationship]` -/// - Returns: `[NetworkManagerClientTypes.Relationship]` extension PaginatorSequence where Input == GetNetworkResourceRelationshipsInput, Output == GetNetworkResourceRelationshipsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getNetworkResourceRelationshipsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Relationship]` + /// - Returns: `[NetworkManagerClientTypes.Relationship]` public func relationships() async throws -> [NetworkManagerClientTypes.Relationship] { return try await self.asyncCompactMap { item in item.relationships } } } - -/// Paginate over `[GetNetworkResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetNetworkResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourcesOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetNetworkResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetNetworkResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetNetworkResourcesOutputResponse` public func getNetworkResourcesPaginated(input: GetNetworkResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetNetworkResourcesInput.nextToken, outputKey: \GetNetworkResourcesOutputResponse.nextToken, paginationFunction: self.getNetworkResources(input:)) } @@ -405,24 +393,23 @@ extension GetNetworkResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getNetworkResourcesPaginated` -/// to access the nested member `[NetworkManagerClientTypes.NetworkResource]` -/// - Returns: `[NetworkManagerClientTypes.NetworkResource]` extension PaginatorSequence where Input == GetNetworkResourcesInput, Output == GetNetworkResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getNetworkResourcesPaginated` + /// to access the nested member `[NetworkManagerClientTypes.NetworkResource]` + /// - Returns: `[NetworkManagerClientTypes.NetworkResource]` public func networkResources() async throws -> [NetworkManagerClientTypes.NetworkResource] { return try await self.asyncCompactMap { item in item.networkResources } } } - -/// Paginate over `[GetNetworkTelemetryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetNetworkTelemetryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetNetworkTelemetryOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetNetworkTelemetryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetNetworkTelemetryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetNetworkTelemetryOutputResponse` public func getNetworkTelemetryPaginated(input: GetNetworkTelemetryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetNetworkTelemetryInput.nextToken, outputKey: \GetNetworkTelemetryOutputResponse.nextToken, paginationFunction: self.getNetworkTelemetry(input:)) } @@ -443,24 +430,23 @@ extension GetNetworkTelemetryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getNetworkTelemetryPaginated` -/// to access the nested member `[NetworkManagerClientTypes.NetworkTelemetry]` -/// - Returns: `[NetworkManagerClientTypes.NetworkTelemetry]` extension PaginatorSequence where Input == GetNetworkTelemetryInput, Output == GetNetworkTelemetryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getNetworkTelemetryPaginated` + /// to access the nested member `[NetworkManagerClientTypes.NetworkTelemetry]` + /// - Returns: `[NetworkManagerClientTypes.NetworkTelemetry]` public func networkTelemetry() async throws -> [NetworkManagerClientTypes.NetworkTelemetry] { return try await self.asyncCompactMap { item in item.networkTelemetry } } } - -/// Paginate over `[GetSitesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSitesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSitesOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetSitesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSitesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSitesOutputResponse` public func getSitesPaginated(input: GetSitesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSitesInput.nextToken, outputKey: \GetSitesOutputResponse.nextToken, paginationFunction: self.getSites(input:)) } @@ -476,24 +462,23 @@ extension GetSitesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSitesPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Site]` -/// - Returns: `[NetworkManagerClientTypes.Site]` extension PaginatorSequence where Input == GetSitesInput, Output == GetSitesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSitesPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Site]` + /// - Returns: `[NetworkManagerClientTypes.Site]` public func sites() async throws -> [NetworkManagerClientTypes.Site] { return try await self.asyncCompactMap { item in item.sites } } } - -/// Paginate over `[GetTransitGatewayConnectPeerAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayConnectPeerAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayConnectPeerAssociationsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetTransitGatewayConnectPeerAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayConnectPeerAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayConnectPeerAssociationsOutputResponse` public func getTransitGatewayConnectPeerAssociationsPaginated(input: GetTransitGatewayConnectPeerAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayConnectPeerAssociationsInput.nextToken, outputKey: \GetTransitGatewayConnectPeerAssociationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayConnectPeerAssociations(input:)) } @@ -509,24 +494,23 @@ extension GetTransitGatewayConnectPeerAssociationsInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayConnectPeerAssociationsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.TransitGatewayConnectPeerAssociation]` -/// - Returns: `[NetworkManagerClientTypes.TransitGatewayConnectPeerAssociation]` extension PaginatorSequence where Input == GetTransitGatewayConnectPeerAssociationsInput, Output == GetTransitGatewayConnectPeerAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayConnectPeerAssociationsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.TransitGatewayConnectPeerAssociation]` + /// - Returns: `[NetworkManagerClientTypes.TransitGatewayConnectPeerAssociation]` public func transitGatewayConnectPeerAssociations() async throws -> [NetworkManagerClientTypes.TransitGatewayConnectPeerAssociation] { return try await self.asyncCompactMap { item in item.transitGatewayConnectPeerAssociations } } } - -/// Paginate over `[GetTransitGatewayRegistrationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTransitGatewayRegistrationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRegistrationsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[GetTransitGatewayRegistrationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTransitGatewayRegistrationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTransitGatewayRegistrationsOutputResponse` public func getTransitGatewayRegistrationsPaginated(input: GetTransitGatewayRegistrationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTransitGatewayRegistrationsInput.nextToken, outputKey: \GetTransitGatewayRegistrationsOutputResponse.nextToken, paginationFunction: self.getTransitGatewayRegistrations(input:)) } @@ -542,24 +526,23 @@ extension GetTransitGatewayRegistrationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRegistrationsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.TransitGatewayRegistration]` -/// - Returns: `[NetworkManagerClientTypes.TransitGatewayRegistration]` extension PaginatorSequence where Input == GetTransitGatewayRegistrationsInput, Output == GetTransitGatewayRegistrationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTransitGatewayRegistrationsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.TransitGatewayRegistration]` + /// - Returns: `[NetworkManagerClientTypes.TransitGatewayRegistration]` public func transitGatewayRegistrations() async throws -> [NetworkManagerClientTypes.TransitGatewayRegistration] { return try await self.asyncCompactMap { item in item.transitGatewayRegistrations } } } - -/// Paginate over `[ListAttachmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachmentsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[ListAttachmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachmentsOutputResponse` public func listAttachmentsPaginated(input: ListAttachmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachmentsInput.nextToken, outputKey: \ListAttachmentsOutputResponse.nextToken, paginationFunction: self.listAttachments(input:)) } @@ -577,24 +560,23 @@ extension ListAttachmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachmentsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Attachment]` -/// - Returns: `[NetworkManagerClientTypes.Attachment]` extension PaginatorSequence where Input == ListAttachmentsInput, Output == ListAttachmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachmentsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Attachment]` + /// - Returns: `[NetworkManagerClientTypes.Attachment]` public func attachments() async throws -> [NetworkManagerClientTypes.Attachment] { return try await self.asyncCompactMap { item in item.attachments } } } - -/// Paginate over `[ListConnectPeersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectPeersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectPeersOutputResponse` extension NetworkManagerClient { + /// Paginate over `[ListConnectPeersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectPeersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectPeersOutputResponse` public func listConnectPeersPaginated(input: ListConnectPeersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectPeersInput.nextToken, outputKey: \ListConnectPeersOutputResponse.nextToken, paginationFunction: self.listConnectPeers(input:)) } @@ -610,24 +592,23 @@ extension ListConnectPeersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listConnectPeersPaginated` -/// to access the nested member `[NetworkManagerClientTypes.ConnectPeerSummary]` -/// - Returns: `[NetworkManagerClientTypes.ConnectPeerSummary]` extension PaginatorSequence where Input == ListConnectPeersInput, Output == ListConnectPeersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listConnectPeersPaginated` + /// to access the nested member `[NetworkManagerClientTypes.ConnectPeerSummary]` + /// - Returns: `[NetworkManagerClientTypes.ConnectPeerSummary]` public func connectPeers() async throws -> [NetworkManagerClientTypes.ConnectPeerSummary] { return try await self.asyncCompactMap { item in item.connectPeers } } } - -/// Paginate over `[ListCoreNetworkPolicyVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCoreNetworkPolicyVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCoreNetworkPolicyVersionsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[ListCoreNetworkPolicyVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCoreNetworkPolicyVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCoreNetworkPolicyVersionsOutputResponse` public func listCoreNetworkPolicyVersionsPaginated(input: ListCoreNetworkPolicyVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCoreNetworkPolicyVersionsInput.nextToken, outputKey: \ListCoreNetworkPolicyVersionsOutputResponse.nextToken, paginationFunction: self.listCoreNetworkPolicyVersions(input:)) } @@ -642,24 +623,23 @@ extension ListCoreNetworkPolicyVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCoreNetworkPolicyVersionsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.CoreNetworkPolicyVersion]` -/// - Returns: `[NetworkManagerClientTypes.CoreNetworkPolicyVersion]` extension PaginatorSequence where Input == ListCoreNetworkPolicyVersionsInput, Output == ListCoreNetworkPolicyVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCoreNetworkPolicyVersionsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.CoreNetworkPolicyVersion]` + /// - Returns: `[NetworkManagerClientTypes.CoreNetworkPolicyVersion]` public func coreNetworkPolicyVersions() async throws -> [NetworkManagerClientTypes.CoreNetworkPolicyVersion] { return try await self.asyncCompactMap { item in item.coreNetworkPolicyVersions } } } - -/// Paginate over `[ListCoreNetworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCoreNetworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCoreNetworksOutputResponse` extension NetworkManagerClient { + /// Paginate over `[ListCoreNetworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCoreNetworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCoreNetworksOutputResponse` public func listCoreNetworksPaginated(input: ListCoreNetworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCoreNetworksInput.nextToken, outputKey: \ListCoreNetworksOutputResponse.nextToken, paginationFunction: self.listCoreNetworks(input:)) } @@ -673,24 +653,23 @@ extension ListCoreNetworksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCoreNetworksPaginated` -/// to access the nested member `[NetworkManagerClientTypes.CoreNetworkSummary]` -/// - Returns: `[NetworkManagerClientTypes.CoreNetworkSummary]` extension PaginatorSequence where Input == ListCoreNetworksInput, Output == ListCoreNetworksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCoreNetworksPaginated` + /// to access the nested member `[NetworkManagerClientTypes.CoreNetworkSummary]` + /// - Returns: `[NetworkManagerClientTypes.CoreNetworkSummary]` public func coreNetworks() async throws -> [NetworkManagerClientTypes.CoreNetworkSummary] { return try await self.asyncCompactMap { item in item.coreNetworks } } } - -/// Paginate over `[ListPeeringsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPeeringsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPeeringsOutputResponse` extension NetworkManagerClient { + /// Paginate over `[ListPeeringsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPeeringsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPeeringsOutputResponse` public func listPeeringsPaginated(input: ListPeeringsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPeeringsInput.nextToken, outputKey: \ListPeeringsOutputResponse.nextToken, paginationFunction: self.listPeerings(input:)) } @@ -708,10 +687,10 @@ extension ListPeeringsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPeeringsPaginated` -/// to access the nested member `[NetworkManagerClientTypes.Peering]` -/// - Returns: `[NetworkManagerClientTypes.Peering]` extension PaginatorSequence where Input == ListPeeringsInput, Output == ListPeeringsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPeeringsPaginated` + /// to access the nested member `[NetworkManagerClientTypes.Peering]` + /// - Returns: `[NetworkManagerClientTypes.Peering]` public func peerings() async throws -> [NetworkManagerClientTypes.Peering] { return try await self.asyncCompactMap { item in item.peerings } } diff --git a/Sources/Services/AWSOAM/Paginators.swift b/Sources/Services/AWSOAM/Paginators.swift index e0fd30c99ae..fcbcaf28201 100644 --- a/Sources/Services/AWSOAM/Paginators.swift +++ b/Sources/Services/AWSOAM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAttachedLinksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttachedLinksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttachedLinksOutputResponse` extension OAMClient { + /// Paginate over `[ListAttachedLinksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttachedLinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttachedLinksOutputResponse` public func listAttachedLinksPaginated(input: ListAttachedLinksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttachedLinksInput.nextToken, outputKey: \ListAttachedLinksOutputResponse.nextToken, paginationFunction: self.listAttachedLinks(input:)) } @@ -26,24 +25,23 @@ extension ListAttachedLinksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttachedLinksPaginated` -/// to access the nested member `[OAMClientTypes.ListAttachedLinksItem]` -/// - Returns: `[OAMClientTypes.ListAttachedLinksItem]` extension PaginatorSequence where Input == ListAttachedLinksInput, Output == ListAttachedLinksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttachedLinksPaginated` + /// to access the nested member `[OAMClientTypes.ListAttachedLinksItem]` + /// - Returns: `[OAMClientTypes.ListAttachedLinksItem]` public func items() async throws -> [OAMClientTypes.ListAttachedLinksItem] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListLinksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLinksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLinksOutputResponse` extension OAMClient { + /// Paginate over `[ListLinksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLinksOutputResponse` public func listLinksPaginated(input: ListLinksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLinksInput.nextToken, outputKey: \ListLinksOutputResponse.nextToken, paginationFunction: self.listLinks(input:)) } @@ -57,24 +55,23 @@ extension ListLinksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLinksPaginated` -/// to access the nested member `[OAMClientTypes.ListLinksItem]` -/// - Returns: `[OAMClientTypes.ListLinksItem]` extension PaginatorSequence where Input == ListLinksInput, Output == ListLinksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLinksPaginated` + /// to access the nested member `[OAMClientTypes.ListLinksItem]` + /// - Returns: `[OAMClientTypes.ListLinksItem]` public func items() async throws -> [OAMClientTypes.ListLinksItem] { return try await self.asyncCompactMap { item in item.items } } } - -/// Paginate over `[ListSinksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSinksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSinksOutputResponse` extension OAMClient { + /// Paginate over `[ListSinksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSinksOutputResponse` public func listSinksPaginated(input: ListSinksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSinksInput.nextToken, outputKey: \ListSinksOutputResponse.nextToken, paginationFunction: self.listSinks(input:)) } @@ -88,10 +85,10 @@ extension ListSinksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSinksPaginated` -/// to access the nested member `[OAMClientTypes.ListSinksItem]` -/// - Returns: `[OAMClientTypes.ListSinksItem]` extension PaginatorSequence where Input == ListSinksInput, Output == ListSinksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSinksPaginated` + /// to access the nested member `[OAMClientTypes.ListSinksItem]` + /// - Returns: `[OAMClientTypes.ListSinksItem]` public func items() async throws -> [OAMClientTypes.ListSinksItem] { return try await self.asyncCompactMap { item in item.items } } diff --git a/Sources/Services/AWSOpenSearch/Paginators.swift b/Sources/Services/AWSOpenSearch/Paginators.swift index 33c31d17b90..d6813fa09de 100644 --- a/Sources/Services/AWSOpenSearch/Paginators.swift +++ b/Sources/Services/AWSOpenSearch/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDomainAutoTunesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDomainAutoTunesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainAutoTunesOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribeDomainAutoTunesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDomainAutoTunesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDomainAutoTunesOutputResponse` public func describeDomainAutoTunesPaginated(input: DescribeDomainAutoTunesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDomainAutoTunesInput.nextToken, outputKey: \DescribeDomainAutoTunesOutputResponse.nextToken, paginationFunction: self.describeDomainAutoTunes(input:)) } @@ -25,16 +24,15 @@ extension DescribeDomainAutoTunesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeInboundConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInboundConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInboundConnectionsOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribeInboundConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInboundConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInboundConnectionsOutputResponse` public func describeInboundConnectionsPaginated(input: DescribeInboundConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInboundConnectionsInput.nextToken, outputKey: \DescribeInboundConnectionsOutputResponse.nextToken, paginationFunction: self.describeInboundConnections(input:)) } @@ -48,16 +46,15 @@ extension DescribeInboundConnectionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeOutboundConnectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOutboundConnectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOutboundConnectionsOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribeOutboundConnectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOutboundConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOutboundConnectionsOutputResponse` public func describeOutboundConnectionsPaginated(input: DescribeOutboundConnectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOutboundConnectionsInput.nextToken, outputKey: \DescribeOutboundConnectionsOutputResponse.nextToken, paginationFunction: self.describeOutboundConnections(input:)) } @@ -71,16 +68,15 @@ extension DescribeOutboundConnectionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribePackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePackagesOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribePackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePackagesOutputResponse` public func describePackagesPaginated(input: DescribePackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePackagesInput.nextToken, outputKey: \DescribePackagesOutputResponse.nextToken, paginationFunction: self.describePackages(input:)) } @@ -94,16 +90,15 @@ extension DescribePackagesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeReservedInstanceOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedInstanceOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstanceOfferingsOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribeReservedInstanceOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedInstanceOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstanceOfferingsOutputResponse` public func describeReservedInstanceOfferingsPaginated(input: DescribeReservedInstanceOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedInstanceOfferingsInput.nextToken, outputKey: \DescribeReservedInstanceOfferingsOutputResponse.nextToken, paginationFunction: self.describeReservedInstanceOfferings(input:)) } @@ -117,16 +112,15 @@ extension DescribeReservedInstanceOfferingsInput: ClientRuntime.PaginateToken { reservedInstanceOfferingId: self.reservedInstanceOfferingId )} } - -/// Paginate over `[DescribeReservedInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesOutputResponse` extension OpenSearchClient { + /// Paginate over `[DescribeReservedInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedInstancesOutputResponse` public func describeReservedInstancesPaginated(input: DescribeReservedInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedInstancesInput.nextToken, outputKey: \DescribeReservedInstancesOutputResponse.nextToken, paginationFunction: self.describeReservedInstances(input:)) } @@ -140,16 +134,15 @@ extension DescribeReservedInstancesInput: ClientRuntime.PaginateToken { reservedInstanceId: self.reservedInstanceId )} } - -/// Paginate over `[GetPackageVersionHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPackageVersionHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPackageVersionHistoryOutputResponse` extension OpenSearchClient { + /// Paginate over `[GetPackageVersionHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPackageVersionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPackageVersionHistoryOutputResponse` public func getPackageVersionHistoryPaginated(input: GetPackageVersionHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPackageVersionHistoryInput.nextToken, outputKey: \GetPackageVersionHistoryOutputResponse.nextToken, paginationFunction: self.getPackageVersionHistory(input:)) } @@ -163,16 +156,15 @@ extension GetPackageVersionHistoryInput: ClientRuntime.PaginateToken { packageID: self.packageID )} } - -/// Paginate over `[GetUpgradeHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetUpgradeHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetUpgradeHistoryOutputResponse` extension OpenSearchClient { + /// Paginate over `[GetUpgradeHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetUpgradeHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetUpgradeHistoryOutputResponse` public func getUpgradeHistoryPaginated(input: GetUpgradeHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetUpgradeHistoryInput.nextToken, outputKey: \GetUpgradeHistoryOutputResponse.nextToken, paginationFunction: self.getUpgradeHistory(input:)) } @@ -186,16 +178,15 @@ extension GetUpgradeHistoryInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDomainsForPackageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsForPackageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsForPackageOutputResponse` extension OpenSearchClient { + /// Paginate over `[ListDomainsForPackageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsForPackageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsForPackageOutputResponse` public func listDomainsForPackagePaginated(input: ListDomainsForPackageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsForPackageInput.nextToken, outputKey: \ListDomainsForPackageOutputResponse.nextToken, paginationFunction: self.listDomainsForPackage(input:)) } @@ -209,16 +200,15 @@ extension ListDomainsForPackageInput: ClientRuntime.PaginateToken { packageID: self.packageID )} } - -/// Paginate over `[ListInstanceTypeDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstanceTypeDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstanceTypeDetailsOutputResponse` extension OpenSearchClient { + /// Paginate over `[ListInstanceTypeDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstanceTypeDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstanceTypeDetailsOutputResponse` public func listInstanceTypeDetailsPaginated(input: ListInstanceTypeDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstanceTypeDetailsInput.nextToken, outputKey: \ListInstanceTypeDetailsOutputResponse.nextToken, paginationFunction: self.listInstanceTypeDetails(input:)) } @@ -233,16 +223,15 @@ extension ListInstanceTypeDetailsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPackagesForDomainOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagesForDomainInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagesForDomainOutputResponse` extension OpenSearchClient { + /// Paginate over `[ListPackagesForDomainOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagesForDomainInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagesForDomainOutputResponse` public func listPackagesForDomainPaginated(input: ListPackagesForDomainInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagesForDomainInput.nextToken, outputKey: \ListPackagesForDomainOutputResponse.nextToken, paginationFunction: self.listPackagesForDomain(input:)) } @@ -256,16 +245,15 @@ extension ListPackagesForDomainInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVersionsOutputResponse` extension OpenSearchClient { + /// Paginate over `[ListVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVersionsOutputResponse` public func listVersionsPaginated(input: ListVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVersionsInput.nextToken, outputKey: \ListVersionsOutputResponse.nextToken, paginationFunction: self.listVersions(input:)) } diff --git a/Sources/Services/AWSOpsWorks/Paginators.swift b/Sources/Services/AWSOpsWorks/Paginators.swift index ecbdb6761ac..4a8e258daa1 100644 --- a/Sources/Services/AWSOpsWorks/Paginators.swift +++ b/Sources/Services/AWSOpsWorks/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeEcsClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEcsClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEcsClustersOutputResponse` extension OpsWorksClient { + /// Paginate over `[DescribeEcsClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEcsClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEcsClustersOutputResponse` public func describeEcsClustersPaginated(input: DescribeEcsClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEcsClustersInput.nextToken, outputKey: \DescribeEcsClustersOutputResponse.nextToken, paginationFunction: self.describeEcsClusters(input:)) } @@ -27,10 +26,10 @@ extension DescribeEcsClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEcsClustersPaginated` -/// to access the nested member `[OpsWorksClientTypes.EcsCluster]` -/// - Returns: `[OpsWorksClientTypes.EcsCluster]` extension PaginatorSequence where Input == DescribeEcsClustersInput, Output == DescribeEcsClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEcsClustersPaginated` + /// to access the nested member `[OpsWorksClientTypes.EcsCluster]` + /// - Returns: `[OpsWorksClientTypes.EcsCluster]` public func ecsClusters() async throws -> [OpsWorksClientTypes.EcsCluster] { return try await self.asyncCompactMap { item in item.ecsClusters } } diff --git a/Sources/Services/AWSOpsWorksCM/Paginators.swift b/Sources/Services/AWSOpsWorksCM/Paginators.swift index 41dfe54e9a3..acf1734da77 100644 --- a/Sources/Services/AWSOpsWorksCM/Paginators.swift +++ b/Sources/Services/AWSOpsWorksCM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBackupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBackupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` extension OpsWorksCMClient { + /// Paginate over `[DescribeBackupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBackupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBackupsOutputResponse` public func describeBackupsPaginated(input: DescribeBackupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBackupsInput.nextToken, outputKey: \DescribeBackupsOutputResponse.nextToken, paginationFunction: self.describeBackups(input:)) } @@ -27,24 +26,23 @@ extension DescribeBackupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBackupsPaginated` -/// to access the nested member `[OpsWorksCMClientTypes.Backup]` -/// - Returns: `[OpsWorksCMClientTypes.Backup]` extension PaginatorSequence where Input == DescribeBackupsInput, Output == DescribeBackupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBackupsPaginated` + /// to access the nested member `[OpsWorksCMClientTypes.Backup]` + /// - Returns: `[OpsWorksCMClientTypes.Backup]` public func backups() async throws -> [OpsWorksCMClientTypes.Backup] { return try await self.asyncCompactMap { item in item.backups } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension OpsWorksCMClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.nextToken, outputKey: \DescribeEventsOutputResponse.nextToken, paginationFunction: self.describeEvents(input:)) } @@ -59,24 +57,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[OpsWorksCMClientTypes.ServerEvent]` -/// - Returns: `[OpsWorksCMClientTypes.ServerEvent]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[OpsWorksCMClientTypes.ServerEvent]` + /// - Returns: `[OpsWorksCMClientTypes.ServerEvent]` public func serverEvents() async throws -> [OpsWorksCMClientTypes.ServerEvent] { return try await self.asyncCompactMap { item in item.serverEvents } } } - -/// Paginate over `[DescribeServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeServersOutputResponse` extension OpsWorksCMClient { + /// Paginate over `[DescribeServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeServersOutputResponse` public func describeServersPaginated(input: DescribeServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeServersInput.nextToken, outputKey: \DescribeServersOutputResponse.nextToken, paginationFunction: self.describeServers(input:)) } @@ -91,24 +88,23 @@ extension DescribeServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeServersPaginated` -/// to access the nested member `[OpsWorksCMClientTypes.Server]` -/// - Returns: `[OpsWorksCMClientTypes.Server]` extension PaginatorSequence where Input == DescribeServersInput, Output == DescribeServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeServersPaginated` + /// to access the nested member `[OpsWorksCMClientTypes.Server]` + /// - Returns: `[OpsWorksCMClientTypes.Server]` public func servers() async throws -> [OpsWorksCMClientTypes.Server] { return try await self.asyncCompactMap { item in item.servers } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension OpsWorksCMClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -123,10 +119,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[OpsWorksCMClientTypes.Tag]` -/// - Returns: `[OpsWorksCMClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[OpsWorksCMClientTypes.Tag]` + /// - Returns: `[OpsWorksCMClientTypes.Tag]` public func tags() async throws -> [OpsWorksCMClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSOrganizations/EndpointResolver.swift b/Sources/Services/AWSOrganizations/EndpointResolver.swift index 1fc4465bc45..b71e8613bc6 100644 --- a/Sources/Services/AWSOrganizations/EndpointResolver.swift +++ b/Sources/Services/AWSOrganizations/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://organizations-fips.us-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://organizations.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"organizations\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://organizations-fips.us-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://organizations.cn-northwest-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://organizations.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"organizations\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://organizations.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSOrganizations/Paginators.swift b/Sources/Services/AWSOrganizations/Paginators.swift index 77d02837b6e..1bf5b050afe 100644 --- a/Sources/Services/AWSOrganizations/Paginators.swift +++ b/Sources/Services/AWSOrganizations/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` public func listAccountsPaginated(input: ListAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountsInput.nextToken, outputKey: \ListAccountsOutputResponse.nextToken, paginationFunction: self.listAccounts(input:)) } @@ -24,16 +23,15 @@ extension ListAccountsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAccountsForParentOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountsForParentInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountsForParentOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListAccountsForParentOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountsForParentInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountsForParentOutputResponse` public func listAccountsForParentPaginated(input: ListAccountsForParentInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountsForParentInput.nextToken, outputKey: \ListAccountsForParentOutputResponse.nextToken, paginationFunction: self.listAccountsForParent(input:)) } @@ -47,16 +45,15 @@ extension ListAccountsForParentInput: ClientRuntime.PaginateToken { parentId: self.parentId )} } - -/// Paginate over `[ListAWSServiceAccessForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAWSServiceAccessForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAWSServiceAccessForOrganizationOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListAWSServiceAccessForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAWSServiceAccessForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAWSServiceAccessForOrganizationOutputResponse` public func listAWSServiceAccessForOrganizationPaginated(input: ListAWSServiceAccessForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAWSServiceAccessForOrganizationInput.nextToken, outputKey: \ListAWSServiceAccessForOrganizationOutputResponse.nextToken, paginationFunction: self.listAWSServiceAccessForOrganization(input:)) } @@ -69,16 +66,15 @@ extension ListAWSServiceAccessForOrganizationInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[ListChildrenOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListChildrenInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListChildrenOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListChildrenOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListChildrenInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListChildrenOutputResponse` public func listChildrenPaginated(input: ListChildrenInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListChildrenInput.nextToken, outputKey: \ListChildrenOutputResponse.nextToken, paginationFunction: self.listChildren(input:)) } @@ -93,16 +89,15 @@ extension ListChildrenInput: ClientRuntime.PaginateToken { parentId: self.parentId )} } - -/// Paginate over `[ListCreateAccountStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCreateAccountStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCreateAccountStatusOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListCreateAccountStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCreateAccountStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCreateAccountStatusOutputResponse` public func listCreateAccountStatusPaginated(input: ListCreateAccountStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCreateAccountStatusInput.nextToken, outputKey: \ListCreateAccountStatusOutputResponse.nextToken, paginationFunction: self.listCreateAccountStatus(input:)) } @@ -116,16 +111,15 @@ extension ListCreateAccountStatusInput: ClientRuntime.PaginateToken { states: self.states )} } - -/// Paginate over `[ListDelegatedAdministratorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDelegatedAdministratorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedAdministratorsOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListDelegatedAdministratorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDelegatedAdministratorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedAdministratorsOutputResponse` public func listDelegatedAdministratorsPaginated(input: ListDelegatedAdministratorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDelegatedAdministratorsInput.nextToken, outputKey: \ListDelegatedAdministratorsOutputResponse.nextToken, paginationFunction: self.listDelegatedAdministrators(input:)) } @@ -140,24 +134,23 @@ extension ListDelegatedAdministratorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDelegatedAdministratorsPaginated` -/// to access the nested member `[OrganizationsClientTypes.DelegatedAdministrator]` -/// - Returns: `[OrganizationsClientTypes.DelegatedAdministrator]` extension PaginatorSequence where Input == ListDelegatedAdministratorsInput, Output == ListDelegatedAdministratorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDelegatedAdministratorsPaginated` + /// to access the nested member `[OrganizationsClientTypes.DelegatedAdministrator]` + /// - Returns: `[OrganizationsClientTypes.DelegatedAdministrator]` public func delegatedAdministrators() async throws -> [OrganizationsClientTypes.DelegatedAdministrator] { return try await self.asyncCompactMap { item in item.delegatedAdministrators } } } - -/// Paginate over `[ListDelegatedServicesForAccountOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDelegatedServicesForAccountInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedServicesForAccountOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListDelegatedServicesForAccountOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDelegatedServicesForAccountInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDelegatedServicesForAccountOutputResponse` public func listDelegatedServicesForAccountPaginated(input: ListDelegatedServicesForAccountInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDelegatedServicesForAccountInput.nextToken, outputKey: \ListDelegatedServicesForAccountOutputResponse.nextToken, paginationFunction: self.listDelegatedServicesForAccount(input:)) } @@ -172,24 +165,23 @@ extension ListDelegatedServicesForAccountInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDelegatedServicesForAccountPaginated` -/// to access the nested member `[OrganizationsClientTypes.DelegatedService]` -/// - Returns: `[OrganizationsClientTypes.DelegatedService]` extension PaginatorSequence where Input == ListDelegatedServicesForAccountInput, Output == ListDelegatedServicesForAccountOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDelegatedServicesForAccountPaginated` + /// to access the nested member `[OrganizationsClientTypes.DelegatedService]` + /// - Returns: `[OrganizationsClientTypes.DelegatedService]` public func delegatedServices() async throws -> [OrganizationsClientTypes.DelegatedService] { return try await self.asyncCompactMap { item in item.delegatedServices } } } - -/// Paginate over `[ListHandshakesForAccountOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHandshakesForAccountInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHandshakesForAccountOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListHandshakesForAccountOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHandshakesForAccountInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHandshakesForAccountOutputResponse` public func listHandshakesForAccountPaginated(input: ListHandshakesForAccountInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHandshakesForAccountInput.nextToken, outputKey: \ListHandshakesForAccountOutputResponse.nextToken, paginationFunction: self.listHandshakesForAccount(input:)) } @@ -203,16 +195,15 @@ extension ListHandshakesForAccountInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListHandshakesForOrganizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHandshakesForOrganizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHandshakesForOrganizationOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListHandshakesForOrganizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHandshakesForOrganizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHandshakesForOrganizationOutputResponse` public func listHandshakesForOrganizationPaginated(input: ListHandshakesForOrganizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHandshakesForOrganizationInput.nextToken, outputKey: \ListHandshakesForOrganizationOutputResponse.nextToken, paginationFunction: self.listHandshakesForOrganization(input:)) } @@ -226,16 +217,15 @@ extension ListHandshakesForOrganizationInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListOrganizationalUnitsForParentOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationalUnitsForParentInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationalUnitsForParentOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListOrganizationalUnitsForParentOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationalUnitsForParentInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationalUnitsForParentOutputResponse` public func listOrganizationalUnitsForParentPaginated(input: ListOrganizationalUnitsForParentInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationalUnitsForParentInput.nextToken, outputKey: \ListOrganizationalUnitsForParentOutputResponse.nextToken, paginationFunction: self.listOrganizationalUnitsForParent(input:)) } @@ -249,16 +239,15 @@ extension ListOrganizationalUnitsForParentInput: ClientRuntime.PaginateToken { parentId: self.parentId )} } - -/// Paginate over `[ListParentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListParentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListParentsOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListParentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListParentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListParentsOutputResponse` public func listParentsPaginated(input: ListParentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListParentsInput.nextToken, outputKey: \ListParentsOutputResponse.nextToken, paginationFunction: self.listParents(input:)) } @@ -272,16 +261,15 @@ extension ListParentsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesOutputResponse` public func listPoliciesPaginated(input: ListPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoliciesInput.nextToken, outputKey: \ListPoliciesOutputResponse.nextToken, paginationFunction: self.listPolicies(input:)) } @@ -295,16 +283,15 @@ extension ListPoliciesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPoliciesForTargetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoliciesForTargetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesForTargetOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListPoliciesForTargetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoliciesForTargetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoliciesForTargetOutputResponse` public func listPoliciesForTargetPaginated(input: ListPoliciesForTargetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoliciesForTargetInput.nextToken, outputKey: \ListPoliciesForTargetOutputResponse.nextToken, paginationFunction: self.listPoliciesForTarget(input:)) } @@ -319,16 +306,15 @@ extension ListPoliciesForTargetInput: ClientRuntime.PaginateToken { targetId: self.targetId )} } - -/// Paginate over `[ListRootsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRootsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRootsOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListRootsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRootsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRootsOutputResponse` public func listRootsPaginated(input: ListRootsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRootsInput.nextToken, outputKey: \ListRootsOutputResponse.nextToken, paginationFunction: self.listRoots(input:)) } @@ -341,16 +327,15 @@ extension ListRootsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -364,24 +349,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[OrganizationsClientTypes.Tag]` -/// - Returns: `[OrganizationsClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[OrganizationsClientTypes.Tag]` + /// - Returns: `[OrganizationsClientTypes.Tag]` public func tags() async throws -> [OrganizationsClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListTargetsForPolicyOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTargetsForPolicyInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForPolicyOutputResponse` extension OrganizationsClient { + /// Paginate over `[ListTargetsForPolicyOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTargetsForPolicyInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetsForPolicyOutputResponse` public func listTargetsForPolicyPaginated(input: ListTargetsForPolicyInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTargetsForPolicyInput.nextToken, outputKey: \ListTargetsForPolicyOutputResponse.nextToken, paginationFunction: self.listTargetsForPolicy(input:)) } diff --git a/Sources/Services/AWSOutposts/EndpointResolver.swift b/Sources/Services/AWSOutposts/EndpointResolver.swift index 8c5600b49b9..97473781895 100644 --- a/Sources/Services/AWSOutposts/EndpointResolver.swift +++ b/Sources/Services/AWSOutposts/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://outposts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSOutposts/OutpostsClient.swift b/Sources/Services/AWSOutposts/OutpostsClient.swift index 179eac1095e..2cd8a7dff9e 100644 --- a/Sources/Services/AWSOutposts/OutpostsClient.swift +++ b/Sources/Services/AWSOutposts/OutpostsClient.swift @@ -224,7 +224,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "cancelOrder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -256,7 +259,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "createOrder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -291,7 +297,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "createOutpost") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -326,7 +335,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "createSite") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -361,7 +373,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteOutpost") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -393,7 +408,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteSite") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -425,7 +443,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getCatalogItem") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -457,7 +478,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -489,7 +513,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOrder") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -521,7 +548,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOutpost") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -553,7 +583,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getOutpostInstanceTypes") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -586,7 +619,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getSite") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -618,7 +654,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getSiteAddress") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -651,7 +690,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listAssets") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -684,7 +726,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listCatalogItems") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -717,7 +762,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listOrders") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -750,7 +798,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listOutposts") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -783,7 +834,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listSites") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -816,7 +870,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listTagsForResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -848,7 +905,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "startConnection") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -883,7 +943,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -918,7 +981,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -951,7 +1017,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateOutpost") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -986,7 +1055,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateSite") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1021,7 +1093,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateSiteAddress") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1056,7 +1131,10 @@ extension OutpostsClient: OutpostsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateSiteRackPhysicalProperties") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSOutposts/Paginators.swift b/Sources/Services/AWSOutposts/Paginators.swift index 50d164dd046..94a3c9f342c 100644 --- a/Sources/Services/AWSOutposts/Paginators.swift +++ b/Sources/Services/AWSOutposts/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetOutpostInstanceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOutpostInstanceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOutpostInstanceTypesOutputResponse` extension OutpostsClient { + /// Paginate over `[GetOutpostInstanceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOutpostInstanceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOutpostInstanceTypesOutputResponse` public func getOutpostInstanceTypesPaginated(input: GetOutpostInstanceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOutpostInstanceTypesInput.nextToken, outputKey: \GetOutpostInstanceTypesOutputResponse.nextToken, paginationFunction: self.getOutpostInstanceTypes(input:)) } @@ -25,16 +24,15 @@ extension GetOutpostInstanceTypesInput: ClientRuntime.PaginateToken { outpostId: self.outpostId )} } - -/// Paginate over `[ListAssetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` extension OutpostsClient { + /// Paginate over `[ListAssetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssetsOutputResponse` public func listAssetsPaginated(input: ListAssetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssetsInput.nextToken, outputKey: \ListAssetsOutputResponse.nextToken, paginationFunction: self.listAssets(input:)) } @@ -50,16 +48,15 @@ extension ListAssetsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[ListCatalogItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCatalogItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCatalogItemsOutputResponse` extension OutpostsClient { + /// Paginate over `[ListCatalogItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCatalogItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCatalogItemsOutputResponse` public func listCatalogItemsPaginated(input: ListCatalogItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCatalogItemsInput.nextToken, outputKey: \ListCatalogItemsOutputResponse.nextToken, paginationFunction: self.listCatalogItems(input:)) } @@ -75,16 +72,15 @@ extension ListCatalogItemsInput: ClientRuntime.PaginateToken { supportedStorageFilter: self.supportedStorageFilter )} } - -/// Paginate over `[ListOrdersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrdersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrdersOutputResponse` extension OutpostsClient { + /// Paginate over `[ListOrdersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrdersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrdersOutputResponse` public func listOrdersPaginated(input: ListOrdersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrdersInput.nextToken, outputKey: \ListOrdersOutputResponse.nextToken, paginationFunction: self.listOrders(input:)) } @@ -98,16 +94,15 @@ extension ListOrdersInput: ClientRuntime.PaginateToken { outpostIdentifierFilter: self.outpostIdentifierFilter )} } - -/// Paginate over `[ListOutpostsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOutpostsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOutpostsOutputResponse` extension OutpostsClient { + /// Paginate over `[ListOutpostsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOutpostsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOutpostsOutputResponse` public func listOutpostsPaginated(input: ListOutpostsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOutpostsInput.nextToken, outputKey: \ListOutpostsOutputResponse.nextToken, paginationFunction: self.listOutposts(input:)) } @@ -123,16 +118,15 @@ extension ListOutpostsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSitesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSitesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSitesOutputResponse` extension OutpostsClient { + /// Paginate over `[ListSitesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSitesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSitesOutputResponse` public func listSitesPaginated(input: ListSitesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSitesInput.nextToken, outputKey: \ListSitesOutputResponse.nextToken, paginationFunction: self.listSites(input:)) } diff --git a/Sources/Services/AWSOutposts/models/Models.swift b/Sources/Services/AWSOutposts/models/Models.swift index 09149f6e878..4585bbbd1db 100644 --- a/Sources/Services/AWSOutposts/models/Models.swift +++ b/Sources/Services/AWSOutposts/models/Models.swift @@ -4532,6 +4532,7 @@ extension OutpostsClientTypes { public enum PowerDrawKva: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case power10Kva case power15Kva + case power30Kva case power5Kva case sdkUnknown(Swift.String) @@ -4539,6 +4540,7 @@ extension OutpostsClientTypes { return [ .power10Kva, .power15Kva, + .power30Kva, .power5Kva, .sdkUnknown("") ] @@ -4551,6 +4553,7 @@ extension OutpostsClientTypes { switch self { case .power10Kva: return "POWER_10_KVA" case .power15Kva: return "POWER_15_KVA" + case .power30Kva: return "POWER_30_KVA" case .power5Kva: return "POWER_5_KVA" case let .sdkUnknown(s): return s } diff --git a/Sources/Services/AWSPI/Paginators.swift b/Sources/Services/AWSPI/Paginators.swift index 67433888179..ef2be343d4c 100644 --- a/Sources/Services/AWSPI/Paginators.swift +++ b/Sources/Services/AWSPI/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDimensionKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDimensionKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDimensionKeysOutputResponse` extension PIClient { + /// Paginate over `[DescribeDimensionKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDimensionKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDimensionKeysOutputResponse` public func describeDimensionKeysPaginated(input: DescribeDimensionKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDimensionKeysInput.nextToken, outputKey: \DescribeDimensionKeysOutputResponse.nextToken, paginationFunction: self.describeDimensionKeys(input:)) } @@ -34,16 +33,15 @@ extension DescribeDimensionKeysInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[GetResourceMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceMetricsOutputResponse` extension PIClient { + /// Paginate over `[GetResourceMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceMetricsOutputResponse` public func getResourceMetricsPaginated(input: GetResourceMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceMetricsInput.nextToken, outputKey: \GetResourceMetricsOutputResponse.nextToken, paginationFunction: self.getResourceMetrics(input:)) } @@ -62,16 +60,15 @@ extension GetResourceMetricsInput: ClientRuntime.PaginateToken { startTime: self.startTime )} } - -/// Paginate over `[ListAvailableResourceDimensionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAvailableResourceDimensionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAvailableResourceDimensionsOutputResponse` extension PIClient { + /// Paginate over `[ListAvailableResourceDimensionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAvailableResourceDimensionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAvailableResourceDimensionsOutputResponse` public func listAvailableResourceDimensionsPaginated(input: ListAvailableResourceDimensionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAvailableResourceDimensionsInput.nextToken, outputKey: \ListAvailableResourceDimensionsOutputResponse.nextToken, paginationFunction: self.listAvailableResourceDimensions(input:)) } @@ -87,16 +84,15 @@ extension ListAvailableResourceDimensionsInput: ClientRuntime.PaginateToken { serviceType: self.serviceType )} } - -/// Paginate over `[ListAvailableResourceMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAvailableResourceMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAvailableResourceMetricsOutputResponse` extension PIClient { + /// Paginate over `[ListAvailableResourceMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAvailableResourceMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAvailableResourceMetricsOutputResponse` public func listAvailableResourceMetricsPaginated(input: ListAvailableResourceMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAvailableResourceMetricsInput.nextToken, outputKey: \ListAvailableResourceMetricsOutputResponse.nextToken, paginationFunction: self.listAvailableResourceMetrics(input:)) } diff --git a/Sources/Services/AWSPanorama/Paginators.swift b/Sources/Services/AWSPanorama/Paginators.swift index d7ebbe8fd1c..6e29e63c5eb 100644 --- a/Sources/Services/AWSPanorama/Paginators.swift +++ b/Sources/Services/AWSPanorama/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationInstanceDependenciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationInstanceDependenciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstanceDependenciesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListApplicationInstanceDependenciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationInstanceDependenciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstanceDependenciesOutputResponse` public func listApplicationInstanceDependenciesPaginated(input: ListApplicationInstanceDependenciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationInstanceDependenciesInput.nextToken, outputKey: \ListApplicationInstanceDependenciesOutputResponse.nextToken, paginationFunction: self.listApplicationInstanceDependencies(input:)) } @@ -25,16 +24,15 @@ extension ListApplicationInstanceDependenciesInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[ListApplicationInstanceNodeInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationInstanceNodeInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstanceNodeInstancesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListApplicationInstanceNodeInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationInstanceNodeInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstanceNodeInstancesOutputResponse` public func listApplicationInstanceNodeInstancesPaginated(input: ListApplicationInstanceNodeInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationInstanceNodeInstancesInput.nextToken, outputKey: \ListApplicationInstanceNodeInstancesOutputResponse.nextToken, paginationFunction: self.listApplicationInstanceNodeInstances(input:)) } @@ -48,16 +46,15 @@ extension ListApplicationInstanceNodeInstancesInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[ListApplicationInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstancesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListApplicationInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationInstancesOutputResponse` public func listApplicationInstancesPaginated(input: ListApplicationInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationInstancesInput.nextToken, outputKey: \ListApplicationInstancesOutputResponse.nextToken, paginationFunction: self.listApplicationInstances(input:)) } @@ -72,16 +69,15 @@ extension ListApplicationInstancesInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } - -/// Paginate over `[ListDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` public func listDevicesPaginated(input: ListDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicesInput.nextToken, outputKey: \ListDevicesOutputResponse.nextToken, paginationFunction: self.listDevices(input:)) } @@ -98,16 +94,15 @@ extension ListDevicesInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[ListDevicesJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicesJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicesJobsOutputResponse` extension PanoramaClient { + /// Paginate over `[ListDevicesJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicesJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicesJobsOutputResponse` public func listDevicesJobsPaginated(input: ListDevicesJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicesJobsInput.nextToken, outputKey: \ListDevicesJobsOutputResponse.nextToken, paginationFunction: self.listDevicesJobs(input:)) } @@ -121,16 +116,15 @@ extension ListDevicesJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListNodeFromTemplateJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNodeFromTemplateJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNodeFromTemplateJobsOutputResponse` extension PanoramaClient { + /// Paginate over `[ListNodeFromTemplateJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodeFromTemplateJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodeFromTemplateJobsOutputResponse` public func listNodeFromTemplateJobsPaginated(input: ListNodeFromTemplateJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNodeFromTemplateJobsInput.nextToken, outputKey: \ListNodeFromTemplateJobsOutputResponse.nextToken, paginationFunction: self.listNodeFromTemplateJobs(input:)) } @@ -143,16 +137,15 @@ extension ListNodeFromTemplateJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNodesOutputResponse` public func listNodesPaginated(input: ListNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNodesInput.nextToken, outputKey: \ListNodesOutputResponse.nextToken, paginationFunction: self.listNodes(input:)) } @@ -170,16 +163,15 @@ extension ListNodesInput: ClientRuntime.PaginateToken { patchVersion: self.patchVersion )} } - -/// Paginate over `[ListPackageImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackageImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackageImportJobsOutputResponse` extension PanoramaClient { + /// Paginate over `[ListPackageImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackageImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackageImportJobsOutputResponse` public func listPackageImportJobsPaginated(input: ListPackageImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackageImportJobsInput.nextToken, outputKey: \ListPackageImportJobsOutputResponse.nextToken, paginationFunction: self.listPackageImportJobs(input:)) } @@ -192,16 +184,15 @@ extension ListPackageImportJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPackagesOutputResponse` extension PanoramaClient { + /// Paginate over `[ListPackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPackagesOutputResponse` public func listPackagesPaginated(input: ListPackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPackagesInput.nextToken, outputKey: \ListPackagesOutputResponse.nextToken, paginationFunction: self.listPackages(input:)) } diff --git a/Sources/Services/AWSPersonalize/Paginators.swift b/Sources/Services/AWSPersonalize/Paginators.swift index 920c936650b..d897fb0ea39 100644 --- a/Sources/Services/AWSPersonalize/Paginators.swift +++ b/Sources/Services/AWSPersonalize/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBatchInferenceJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBatchInferenceJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBatchInferenceJobsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListBatchInferenceJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBatchInferenceJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBatchInferenceJobsOutputResponse` public func listBatchInferenceJobsPaginated(input: ListBatchInferenceJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBatchInferenceJobsInput.nextToken, outputKey: \ListBatchInferenceJobsOutputResponse.nextToken, paginationFunction: self.listBatchInferenceJobs(input:)) } @@ -26,24 +25,23 @@ extension ListBatchInferenceJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBatchInferenceJobsPaginated` -/// to access the nested member `[PersonalizeClientTypes.BatchInferenceJobSummary]` -/// - Returns: `[PersonalizeClientTypes.BatchInferenceJobSummary]` extension PaginatorSequence where Input == ListBatchInferenceJobsInput, Output == ListBatchInferenceJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBatchInferenceJobsPaginated` + /// to access the nested member `[PersonalizeClientTypes.BatchInferenceJobSummary]` + /// - Returns: `[PersonalizeClientTypes.BatchInferenceJobSummary]` public func batchInferenceJobs() async throws -> [PersonalizeClientTypes.BatchInferenceJobSummary] { return try await self.asyncCompactMap { item in item.batchInferenceJobs } } } - -/// Paginate over `[ListBatchSegmentJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBatchSegmentJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBatchSegmentJobsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListBatchSegmentJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBatchSegmentJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBatchSegmentJobsOutputResponse` public func listBatchSegmentJobsPaginated(input: ListBatchSegmentJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBatchSegmentJobsInput.nextToken, outputKey: \ListBatchSegmentJobsOutputResponse.nextToken, paginationFunction: self.listBatchSegmentJobs(input:)) } @@ -58,24 +56,23 @@ extension ListBatchSegmentJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listBatchSegmentJobsPaginated` -/// to access the nested member `[PersonalizeClientTypes.BatchSegmentJobSummary]` -/// - Returns: `[PersonalizeClientTypes.BatchSegmentJobSummary]` extension PaginatorSequence where Input == ListBatchSegmentJobsInput, Output == ListBatchSegmentJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listBatchSegmentJobsPaginated` + /// to access the nested member `[PersonalizeClientTypes.BatchSegmentJobSummary]` + /// - Returns: `[PersonalizeClientTypes.BatchSegmentJobSummary]` public func batchSegmentJobs() async throws -> [PersonalizeClientTypes.BatchSegmentJobSummary] { return try await self.asyncCompactMap { item in item.batchSegmentJobs } } } - -/// Paginate over `[ListCampaignsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCampaignsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCampaignsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListCampaignsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCampaignsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCampaignsOutputResponse` public func listCampaignsPaginated(input: ListCampaignsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCampaignsInput.nextToken, outputKey: \ListCampaignsOutputResponse.nextToken, paginationFunction: self.listCampaigns(input:)) } @@ -90,24 +87,23 @@ extension ListCampaignsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCampaignsPaginated` -/// to access the nested member `[PersonalizeClientTypes.CampaignSummary]` -/// - Returns: `[PersonalizeClientTypes.CampaignSummary]` extension PaginatorSequence where Input == ListCampaignsInput, Output == ListCampaignsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCampaignsPaginated` + /// to access the nested member `[PersonalizeClientTypes.CampaignSummary]` + /// - Returns: `[PersonalizeClientTypes.CampaignSummary]` public func campaigns() async throws -> [PersonalizeClientTypes.CampaignSummary] { return try await self.asyncCompactMap { item in item.campaigns } } } - -/// Paginate over `[ListDatasetExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetExportJobsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListDatasetExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetExportJobsOutputResponse` public func listDatasetExportJobsPaginated(input: ListDatasetExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetExportJobsInput.nextToken, outputKey: \ListDatasetExportJobsOutputResponse.nextToken, paginationFunction: self.listDatasetExportJobs(input:)) } @@ -122,24 +118,23 @@ extension ListDatasetExportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetExportJobsPaginated` -/// to access the nested member `[PersonalizeClientTypes.DatasetExportJobSummary]` -/// - Returns: `[PersonalizeClientTypes.DatasetExportJobSummary]` extension PaginatorSequence where Input == ListDatasetExportJobsInput, Output == ListDatasetExportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetExportJobsPaginated` + /// to access the nested member `[PersonalizeClientTypes.DatasetExportJobSummary]` + /// - Returns: `[PersonalizeClientTypes.DatasetExportJobSummary]` public func datasetExportJobs() async throws -> [PersonalizeClientTypes.DatasetExportJobSummary] { return try await self.asyncCompactMap { item in item.datasetExportJobs } } } - -/// Paginate over `[ListDatasetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetGroupsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListDatasetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetGroupsOutputResponse` public func listDatasetGroupsPaginated(input: ListDatasetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetGroupsInput.nextToken, outputKey: \ListDatasetGroupsOutputResponse.nextToken, paginationFunction: self.listDatasetGroups(input:)) } @@ -153,24 +148,23 @@ extension ListDatasetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetGroupsPaginated` -/// to access the nested member `[PersonalizeClientTypes.DatasetGroupSummary]` -/// - Returns: `[PersonalizeClientTypes.DatasetGroupSummary]` extension PaginatorSequence where Input == ListDatasetGroupsInput, Output == ListDatasetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetGroupsPaginated` + /// to access the nested member `[PersonalizeClientTypes.DatasetGroupSummary]` + /// - Returns: `[PersonalizeClientTypes.DatasetGroupSummary]` public func datasetGroups() async throws -> [PersonalizeClientTypes.DatasetGroupSummary] { return try await self.asyncCompactMap { item in item.datasetGroups } } } - -/// Paginate over `[ListDatasetImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetImportJobsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListDatasetImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetImportJobsOutputResponse` public func listDatasetImportJobsPaginated(input: ListDatasetImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetImportJobsInput.nextToken, outputKey: \ListDatasetImportJobsOutputResponse.nextToken, paginationFunction: self.listDatasetImportJobs(input:)) } @@ -185,24 +179,23 @@ extension ListDatasetImportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetImportJobsPaginated` -/// to access the nested member `[PersonalizeClientTypes.DatasetImportJobSummary]` -/// - Returns: `[PersonalizeClientTypes.DatasetImportJobSummary]` extension PaginatorSequence where Input == ListDatasetImportJobsInput, Output == ListDatasetImportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetImportJobsPaginated` + /// to access the nested member `[PersonalizeClientTypes.DatasetImportJobSummary]` + /// - Returns: `[PersonalizeClientTypes.DatasetImportJobSummary]` public func datasetImportJobs() async throws -> [PersonalizeClientTypes.DatasetImportJobSummary] { return try await self.asyncCompactMap { item in item.datasetImportJobs } } } - -/// Paginate over `[ListDatasetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListDatasetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetsOutputResponse` public func listDatasetsPaginated(input: ListDatasetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetsInput.nextToken, outputKey: \ListDatasetsOutputResponse.nextToken, paginationFunction: self.listDatasets(input:)) } @@ -217,24 +210,23 @@ extension ListDatasetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` -/// to access the nested member `[PersonalizeClientTypes.DatasetSummary]` -/// - Returns: `[PersonalizeClientTypes.DatasetSummary]` extension PaginatorSequence where Input == ListDatasetsInput, Output == ListDatasetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetsPaginated` + /// to access the nested member `[PersonalizeClientTypes.DatasetSummary]` + /// - Returns: `[PersonalizeClientTypes.DatasetSummary]` public func datasets() async throws -> [PersonalizeClientTypes.DatasetSummary] { return try await self.asyncCompactMap { item in item.datasets } } } - -/// Paginate over `[ListEventTrackersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEventTrackersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEventTrackersOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListEventTrackersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEventTrackersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventTrackersOutputResponse` public func listEventTrackersPaginated(input: ListEventTrackersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEventTrackersInput.nextToken, outputKey: \ListEventTrackersOutputResponse.nextToken, paginationFunction: self.listEventTrackers(input:)) } @@ -249,24 +241,23 @@ extension ListEventTrackersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEventTrackersPaginated` -/// to access the nested member `[PersonalizeClientTypes.EventTrackerSummary]` -/// - Returns: `[PersonalizeClientTypes.EventTrackerSummary]` extension PaginatorSequence where Input == ListEventTrackersInput, Output == ListEventTrackersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEventTrackersPaginated` + /// to access the nested member `[PersonalizeClientTypes.EventTrackerSummary]` + /// - Returns: `[PersonalizeClientTypes.EventTrackerSummary]` public func eventTrackers() async throws -> [PersonalizeClientTypes.EventTrackerSummary] { return try await self.asyncCompactMap { item in item.eventTrackers } } } - -/// Paginate over `[ListFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFiltersOutputResponse` public func listFiltersPaginated(input: ListFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFiltersInput.nextToken, outputKey: \ListFiltersOutputResponse.nextToken, paginationFunction: self.listFilters(input:)) } @@ -281,24 +272,23 @@ extension ListFiltersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` -/// to access the nested member `[PersonalizeClientTypes.FilterSummary]` -/// - Returns: `[PersonalizeClientTypes.FilterSummary]` extension PaginatorSequence where Input == ListFiltersInput, Output == ListFiltersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFiltersPaginated` + /// to access the nested member `[PersonalizeClientTypes.FilterSummary]` + /// - Returns: `[PersonalizeClientTypes.FilterSummary]` public func filters() async throws -> [PersonalizeClientTypes.FilterSummary] { return try await self.asyncCompactMap { item in item.filters } } } - -/// Paginate over `[ListMetricAttributionMetricsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricAttributionMetricsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricAttributionMetricsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListMetricAttributionMetricsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricAttributionMetricsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricAttributionMetricsOutputResponse` public func listMetricAttributionMetricsPaginated(input: ListMetricAttributionMetricsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricAttributionMetricsInput.nextToken, outputKey: \ListMetricAttributionMetricsOutputResponse.nextToken, paginationFunction: self.listMetricAttributionMetrics(input:)) } @@ -313,24 +303,23 @@ extension ListMetricAttributionMetricsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMetricAttributionMetricsPaginated` -/// to access the nested member `[PersonalizeClientTypes.MetricAttribute]` -/// - Returns: `[PersonalizeClientTypes.MetricAttribute]` extension PaginatorSequence where Input == ListMetricAttributionMetricsInput, Output == ListMetricAttributionMetricsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMetricAttributionMetricsPaginated` + /// to access the nested member `[PersonalizeClientTypes.MetricAttribute]` + /// - Returns: `[PersonalizeClientTypes.MetricAttribute]` public func metrics() async throws -> [PersonalizeClientTypes.MetricAttribute] { return try await self.asyncCompactMap { item in item.metrics } } } - -/// Paginate over `[ListMetricAttributionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMetricAttributionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMetricAttributionsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListMetricAttributionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMetricAttributionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMetricAttributionsOutputResponse` public func listMetricAttributionsPaginated(input: ListMetricAttributionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMetricAttributionsInput.nextToken, outputKey: \ListMetricAttributionsOutputResponse.nextToken, paginationFunction: self.listMetricAttributions(input:)) } @@ -345,24 +334,23 @@ extension ListMetricAttributionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMetricAttributionsPaginated` -/// to access the nested member `[PersonalizeClientTypes.MetricAttributionSummary]` -/// - Returns: `[PersonalizeClientTypes.MetricAttributionSummary]` extension PaginatorSequence where Input == ListMetricAttributionsInput, Output == ListMetricAttributionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMetricAttributionsPaginated` + /// to access the nested member `[PersonalizeClientTypes.MetricAttributionSummary]` + /// - Returns: `[PersonalizeClientTypes.MetricAttributionSummary]` public func metricAttributions() async throws -> [PersonalizeClientTypes.MetricAttributionSummary] { return try await self.asyncCompactMap { item in item.metricAttributions } } } - -/// Paginate over `[ListRecipesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecipesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecipesOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListRecipesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecipesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecipesOutputResponse` public func listRecipesPaginated(input: ListRecipesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecipesInput.nextToken, outputKey: \ListRecipesOutputResponse.nextToken, paginationFunction: self.listRecipes(input:)) } @@ -378,24 +366,23 @@ extension ListRecipesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecipesPaginated` -/// to access the nested member `[PersonalizeClientTypes.RecipeSummary]` -/// - Returns: `[PersonalizeClientTypes.RecipeSummary]` extension PaginatorSequence where Input == ListRecipesInput, Output == ListRecipesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecipesPaginated` + /// to access the nested member `[PersonalizeClientTypes.RecipeSummary]` + /// - Returns: `[PersonalizeClientTypes.RecipeSummary]` public func recipes() async throws -> [PersonalizeClientTypes.RecipeSummary] { return try await self.asyncCompactMap { item in item.recipes } } } - -/// Paginate over `[ListRecommendersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendersOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListRecommendersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendersOutputResponse` public func listRecommendersPaginated(input: ListRecommendersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendersInput.nextToken, outputKey: \ListRecommendersOutputResponse.nextToken, paginationFunction: self.listRecommenders(input:)) } @@ -410,24 +397,23 @@ extension ListRecommendersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecommendersPaginated` -/// to access the nested member `[PersonalizeClientTypes.RecommenderSummary]` -/// - Returns: `[PersonalizeClientTypes.RecommenderSummary]` extension PaginatorSequence where Input == ListRecommendersInput, Output == ListRecommendersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecommendersPaginated` + /// to access the nested member `[PersonalizeClientTypes.RecommenderSummary]` + /// - Returns: `[PersonalizeClientTypes.RecommenderSummary]` public func recommenders() async throws -> [PersonalizeClientTypes.RecommenderSummary] { return try await self.asyncCompactMap { item in item.recommenders } } } - -/// Paginate over `[ListSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` public func listSchemasPaginated(input: ListSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemasInput.nextToken, outputKey: \ListSchemasOutputResponse.nextToken, paginationFunction: self.listSchemas(input:)) } @@ -441,24 +427,23 @@ extension ListSchemasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` -/// to access the nested member `[PersonalizeClientTypes.DatasetSchemaSummary]` -/// - Returns: `[PersonalizeClientTypes.DatasetSchemaSummary]` extension PaginatorSequence where Input == ListSchemasInput, Output == ListSchemasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` + /// to access the nested member `[PersonalizeClientTypes.DatasetSchemaSummary]` + /// - Returns: `[PersonalizeClientTypes.DatasetSchemaSummary]` public func schemas() async throws -> [PersonalizeClientTypes.DatasetSchemaSummary] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[ListSolutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSolutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSolutionsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListSolutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSolutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSolutionsOutputResponse` public func listSolutionsPaginated(input: ListSolutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSolutionsInput.nextToken, outputKey: \ListSolutionsOutputResponse.nextToken, paginationFunction: self.listSolutions(input:)) } @@ -473,24 +458,23 @@ extension ListSolutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSolutionsPaginated` -/// to access the nested member `[PersonalizeClientTypes.SolutionSummary]` -/// - Returns: `[PersonalizeClientTypes.SolutionSummary]` extension PaginatorSequence where Input == ListSolutionsInput, Output == ListSolutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSolutionsPaginated` + /// to access the nested member `[PersonalizeClientTypes.SolutionSummary]` + /// - Returns: `[PersonalizeClientTypes.SolutionSummary]` public func solutions() async throws -> [PersonalizeClientTypes.SolutionSummary] { return try await self.asyncCompactMap { item in item.solutions } } } - -/// Paginate over `[ListSolutionVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSolutionVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSolutionVersionsOutputResponse` extension PersonalizeClient { + /// Paginate over `[ListSolutionVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSolutionVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSolutionVersionsOutputResponse` public func listSolutionVersionsPaginated(input: ListSolutionVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSolutionVersionsInput.nextToken, outputKey: \ListSolutionVersionsOutputResponse.nextToken, paginationFunction: self.listSolutionVersions(input:)) } @@ -505,10 +489,10 @@ extension ListSolutionVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSolutionVersionsPaginated` -/// to access the nested member `[PersonalizeClientTypes.SolutionVersionSummary]` -/// - Returns: `[PersonalizeClientTypes.SolutionVersionSummary]` extension PaginatorSequence where Input == ListSolutionVersionsInput, Output == ListSolutionVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSolutionVersionsPaginated` + /// to access the nested member `[PersonalizeClientTypes.SolutionVersionSummary]` + /// - Returns: `[PersonalizeClientTypes.SolutionVersionSummary]` public func solutionVersions() async throws -> [PersonalizeClientTypes.SolutionVersionSummary] { return try await self.asyncCompactMap { item in item.solutionVersions } } diff --git a/Sources/Services/AWSPinpointEmail/Paginators.swift b/Sources/Services/AWSPinpointEmail/Paginators.swift index 4fd3008d294..7e4b8a6fb28 100644 --- a/Sources/Services/AWSPinpointEmail/Paginators.swift +++ b/Sources/Services/AWSPinpointEmail/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetDedicatedIpsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDedicatedIpsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDedicatedIpsOutputResponse` extension PinpointEmailClient { + /// Paginate over `[GetDedicatedIpsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDedicatedIpsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDedicatedIpsOutputResponse` public func getDedicatedIpsPaginated(input: GetDedicatedIpsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDedicatedIpsInput.nextToken, outputKey: \GetDedicatedIpsOutputResponse.nextToken, paginationFunction: self.getDedicatedIps(input:)) } @@ -25,16 +24,15 @@ extension GetDedicatedIpsInput: ClientRuntime.PaginateToken { poolName: self.poolName )} } - -/// Paginate over `[ListConfigurationSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationSetsOutputResponse` extension PinpointEmailClient { + /// Paginate over `[ListConfigurationSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationSetsOutputResponse` public func listConfigurationSetsPaginated(input: ListConfigurationSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationSetsInput.nextToken, outputKey: \ListConfigurationSetsOutputResponse.nextToken, paginationFunction: self.listConfigurationSets(input:)) } @@ -47,16 +45,15 @@ extension ListConfigurationSetsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListDedicatedIpPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDedicatedIpPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDedicatedIpPoolsOutputResponse` extension PinpointEmailClient { + /// Paginate over `[ListDedicatedIpPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDedicatedIpPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDedicatedIpPoolsOutputResponse` public func listDedicatedIpPoolsPaginated(input: ListDedicatedIpPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDedicatedIpPoolsInput.nextToken, outputKey: \ListDedicatedIpPoolsOutputResponse.nextToken, paginationFunction: self.listDedicatedIpPools(input:)) } @@ -69,16 +66,15 @@ extension ListDedicatedIpPoolsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListDeliverabilityTestReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeliverabilityTestReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeliverabilityTestReportsOutputResponse` extension PinpointEmailClient { + /// Paginate over `[ListDeliverabilityTestReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeliverabilityTestReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeliverabilityTestReportsOutputResponse` public func listDeliverabilityTestReportsPaginated(input: ListDeliverabilityTestReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeliverabilityTestReportsInput.nextToken, outputKey: \ListDeliverabilityTestReportsOutputResponse.nextToken, paginationFunction: self.listDeliverabilityTestReports(input:)) } @@ -91,16 +87,15 @@ extension ListDeliverabilityTestReportsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListDomainDeliverabilityCampaignsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainDeliverabilityCampaignsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainDeliverabilityCampaignsOutputResponse` extension PinpointEmailClient { + /// Paginate over `[ListDomainDeliverabilityCampaignsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainDeliverabilityCampaignsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainDeliverabilityCampaignsOutputResponse` public func listDomainDeliverabilityCampaignsPaginated(input: ListDomainDeliverabilityCampaignsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainDeliverabilityCampaignsInput.nextToken, outputKey: \ListDomainDeliverabilityCampaignsOutputResponse.nextToken, paginationFunction: self.listDomainDeliverabilityCampaigns(input:)) } @@ -116,16 +111,15 @@ extension ListDomainDeliverabilityCampaignsInput: ClientRuntime.PaginateToken { subscribedDomain: self.subscribedDomain )} } - -/// Paginate over `[ListEmailIdentitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEmailIdentitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEmailIdentitiesOutputResponse` extension PinpointEmailClient { + /// Paginate over `[ListEmailIdentitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEmailIdentitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEmailIdentitiesOutputResponse` public func listEmailIdentitiesPaginated(input: ListEmailIdentitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEmailIdentitiesInput.nextToken, outputKey: \ListEmailIdentitiesOutputResponse.nextToken, paginationFunction: self.listEmailIdentities(input:)) } diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/Paginators.swift b/Sources/Services/AWSPinpointSMSVoiceV2/Paginators.swift index be8c006d980..1b533c84a8f 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/Paginators.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAccountAttributesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAccountAttributesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountAttributesOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeAccountAttributesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAccountAttributesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountAttributesOutputResponse` public func describeAccountAttributesPaginated(input: DescribeAccountAttributesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAccountAttributesInput.nextToken, outputKey: \DescribeAccountAttributesOutputResponse.nextToken, paginationFunction: self.describeAccountAttributes(input:)) } @@ -25,24 +24,23 @@ extension DescribeAccountAttributesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAccountAttributesPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.AccountAttribute]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.AccountAttribute]` extension PaginatorSequence where Input == DescribeAccountAttributesInput, Output == DescribeAccountAttributesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAccountAttributesPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.AccountAttribute]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.AccountAttribute]` public func accountAttributes() async throws -> [PinpointSMSVoiceV2ClientTypes.AccountAttribute] { return try await self.asyncCompactMap { item in item.accountAttributes } } } - -/// Paginate over `[DescribeAccountLimitsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAccountLimitsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountLimitsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeAccountLimitsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAccountLimitsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAccountLimitsOutputResponse` public func describeAccountLimitsPaginated(input: DescribeAccountLimitsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAccountLimitsInput.nextToken, outputKey: \DescribeAccountLimitsOutputResponse.nextToken, paginationFunction: self.describeAccountLimits(input:)) } @@ -56,24 +54,23 @@ extension DescribeAccountLimitsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAccountLimitsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.AccountLimit]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.AccountLimit]` extension PaginatorSequence where Input == DescribeAccountLimitsInput, Output == DescribeAccountLimitsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAccountLimitsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.AccountLimit]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.AccountLimit]` public func accountLimits() async throws -> [PinpointSMSVoiceV2ClientTypes.AccountLimit] { return try await self.asyncCompactMap { item in item.accountLimits } } } - -/// Paginate over `[DescribeConfigurationSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeConfigurationSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationSetsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeConfigurationSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeConfigurationSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeConfigurationSetsOutputResponse` public func describeConfigurationSetsPaginated(input: DescribeConfigurationSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeConfigurationSetsInput.nextToken, outputKey: \DescribeConfigurationSetsOutputResponse.nextToken, paginationFunction: self.describeConfigurationSets(input:)) } @@ -89,24 +86,23 @@ extension DescribeConfigurationSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeConfigurationSetsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.ConfigurationSetInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.ConfigurationSetInformation]` extension PaginatorSequence where Input == DescribeConfigurationSetsInput, Output == DescribeConfigurationSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeConfigurationSetsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.ConfigurationSetInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.ConfigurationSetInformation]` public func configurationSets() async throws -> [PinpointSMSVoiceV2ClientTypes.ConfigurationSetInformation] { return try await self.asyncCompactMap { item in item.configurationSets } } } - -/// Paginate over `[DescribeKeywordsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeKeywordsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeKeywordsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeKeywordsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeKeywordsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeKeywordsOutputResponse` public func describeKeywordsPaginated(input: DescribeKeywordsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeKeywordsInput.nextToken, outputKey: \DescribeKeywordsOutputResponse.nextToken, paginationFunction: self.describeKeywords(input:)) } @@ -123,24 +119,23 @@ extension DescribeKeywordsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeKeywordsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.KeywordInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.KeywordInformation]` extension PaginatorSequence where Input == DescribeKeywordsInput, Output == DescribeKeywordsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeKeywordsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.KeywordInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.KeywordInformation]` public func keywords() async throws -> [PinpointSMSVoiceV2ClientTypes.KeywordInformation] { return try await self.asyncCompactMap { item in item.keywords } } } - -/// Paginate over `[DescribeOptedOutNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOptedOutNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOptedOutNumbersOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeOptedOutNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOptedOutNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOptedOutNumbersOutputResponse` public func describeOptedOutNumbersPaginated(input: DescribeOptedOutNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOptedOutNumbersInput.nextToken, outputKey: \DescribeOptedOutNumbersOutputResponse.nextToken, paginationFunction: self.describeOptedOutNumbers(input:)) } @@ -157,24 +152,23 @@ extension DescribeOptedOutNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOptedOutNumbersPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OptedOutNumberInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.OptedOutNumberInformation]` extension PaginatorSequence where Input == DescribeOptedOutNumbersInput, Output == DescribeOptedOutNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOptedOutNumbersPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OptedOutNumberInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.OptedOutNumberInformation]` public func optedOutNumbers() async throws -> [PinpointSMSVoiceV2ClientTypes.OptedOutNumberInformation] { return try await self.asyncCompactMap { item in item.optedOutNumbers } } } - -/// Paginate over `[DescribeOptOutListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOptOutListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOptOutListsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeOptOutListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOptOutListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOptOutListsOutputResponse` public func describeOptOutListsPaginated(input: DescribeOptOutListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOptOutListsInput.nextToken, outputKey: \DescribeOptOutListsOutputResponse.nextToken, paginationFunction: self.describeOptOutLists(input:)) } @@ -189,24 +183,23 @@ extension DescribeOptOutListsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOptOutListsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OptOutListInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.OptOutListInformation]` extension PaginatorSequence where Input == DescribeOptOutListsInput, Output == DescribeOptOutListsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOptOutListsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OptOutListInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.OptOutListInformation]` public func optOutLists() async throws -> [PinpointSMSVoiceV2ClientTypes.OptOutListInformation] { return try await self.asyncCompactMap { item in item.optOutLists } } } - -/// Paginate over `[DescribePhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePhoneNumbersOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribePhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePhoneNumbersOutputResponse` public func describePhoneNumbersPaginated(input: DescribePhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePhoneNumbersInput.nextToken, outputKey: \DescribePhoneNumbersOutputResponse.nextToken, paginationFunction: self.describePhoneNumbers(input:)) } @@ -222,24 +215,23 @@ extension DescribePhoneNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePhoneNumbersPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.PhoneNumberInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.PhoneNumberInformation]` extension PaginatorSequence where Input == DescribePhoneNumbersInput, Output == DescribePhoneNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePhoneNumbersPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.PhoneNumberInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.PhoneNumberInformation]` public func phoneNumbers() async throws -> [PinpointSMSVoiceV2ClientTypes.PhoneNumberInformation] { return try await self.asyncCompactMap { item in item.phoneNumbers } } } - -/// Paginate over `[DescribePoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePoolsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribePoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePoolsOutputResponse` public func describePoolsPaginated(input: DescribePoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePoolsInput.nextToken, outputKey: \DescribePoolsOutputResponse.nextToken, paginationFunction: self.describePools(input:)) } @@ -255,24 +247,23 @@ extension DescribePoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePoolsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.PoolInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.PoolInformation]` extension PaginatorSequence where Input == DescribePoolsInput, Output == DescribePoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePoolsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.PoolInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.PoolInformation]` public func pools() async throws -> [PinpointSMSVoiceV2ClientTypes.PoolInformation] { return try await self.asyncCompactMap { item in item.pools } } } - -/// Paginate over `[DescribeSenderIdsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSenderIdsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSenderIdsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeSenderIdsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSenderIdsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSenderIdsOutputResponse` public func describeSenderIdsPaginated(input: DescribeSenderIdsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSenderIdsInput.nextToken, outputKey: \DescribeSenderIdsOutputResponse.nextToken, paginationFunction: self.describeSenderIds(input:)) } @@ -288,24 +279,23 @@ extension DescribeSenderIdsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSenderIdsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.SenderIdInformation]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.SenderIdInformation]` extension PaginatorSequence where Input == DescribeSenderIdsInput, Output == DescribeSenderIdsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSenderIdsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.SenderIdInformation]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.SenderIdInformation]` public func senderIds() async throws -> [PinpointSMSVoiceV2ClientTypes.SenderIdInformation] { return try await self.asyncCompactMap { item in item.senderIds } } } - -/// Paginate over `[DescribeSpendLimitsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSpendLimitsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSpendLimitsOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[DescribeSpendLimitsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSpendLimitsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSpendLimitsOutputResponse` public func describeSpendLimitsPaginated(input: DescribeSpendLimitsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSpendLimitsInput.nextToken, outputKey: \DescribeSpendLimitsOutputResponse.nextToken, paginationFunction: self.describeSpendLimits(input:)) } @@ -319,24 +309,23 @@ extension DescribeSpendLimitsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSpendLimitsPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.SpendLimit]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.SpendLimit]` extension PaginatorSequence where Input == DescribeSpendLimitsInput, Output == DescribeSpendLimitsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSpendLimitsPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.SpendLimit]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.SpendLimit]` public func spendLimits() async throws -> [PinpointSMSVoiceV2ClientTypes.SpendLimit] { return try await self.asyncCompactMap { item in item.spendLimits } } } - -/// Paginate over `[ListPoolOriginationIdentitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPoolOriginationIdentitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPoolOriginationIdentitiesOutputResponse` extension PinpointSMSVoiceV2Client { + /// Paginate over `[ListPoolOriginationIdentitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPoolOriginationIdentitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPoolOriginationIdentitiesOutputResponse` public func listPoolOriginationIdentitiesPaginated(input: ListPoolOriginationIdentitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPoolOriginationIdentitiesInput.nextToken, outputKey: \ListPoolOriginationIdentitiesOutputResponse.nextToken, paginationFunction: self.listPoolOriginationIdentities(input:)) } @@ -352,10 +341,10 @@ extension ListPoolOriginationIdentitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPoolOriginationIdentitiesPaginated` -/// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OriginationIdentityMetadata]` -/// - Returns: `[PinpointSMSVoiceV2ClientTypes.OriginationIdentityMetadata]` extension PaginatorSequence where Input == ListPoolOriginationIdentitiesInput, Output == ListPoolOriginationIdentitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPoolOriginationIdentitiesPaginated` + /// to access the nested member `[PinpointSMSVoiceV2ClientTypes.OriginationIdentityMetadata]` + /// - Returns: `[PinpointSMSVoiceV2ClientTypes.OriginationIdentityMetadata]` public func originationIdentities() async throws -> [PinpointSMSVoiceV2ClientTypes.OriginationIdentityMetadata] { return try await self.asyncCompactMap { item in item.originationIdentities } } diff --git a/Sources/Services/AWSPolly/Paginators.swift b/Sources/Services/AWSPolly/Paginators.swift index 0ca2cf57684..a260a4b8c06 100644 --- a/Sources/Services/AWSPolly/Paginators.swift +++ b/Sources/Services/AWSPolly/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSpeechSynthesisTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSpeechSynthesisTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSpeechSynthesisTasksOutputResponse` extension PollyClient { + /// Paginate over `[ListSpeechSynthesisTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSpeechSynthesisTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSpeechSynthesisTasksOutputResponse` public func listSpeechSynthesisTasksPaginated(input: ListSpeechSynthesisTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSpeechSynthesisTasksInput.nextToken, outputKey: \ListSpeechSynthesisTasksOutputResponse.nextToken, paginationFunction: self.listSpeechSynthesisTasks(input:)) } diff --git a/Sources/Services/AWSPricing/Paginators.swift b/Sources/Services/AWSPricing/Paginators.swift index e8f0e2048ac..ec85d188437 100644 --- a/Sources/Services/AWSPricing/Paginators.swift +++ b/Sources/Services/AWSPricing/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeServicesOutputResponse` extension PricingClient { + /// Paginate over `[DescribeServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeServicesOutputResponse` public func describeServicesPaginated(input: DescribeServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeServicesInput.nextToken, outputKey: \DescribeServicesOutputResponse.nextToken, paginationFunction: self.describeServices(input:)) } @@ -26,16 +25,15 @@ extension DescribeServicesInput: ClientRuntime.PaginateToken { serviceCode: self.serviceCode )} } - -/// Paginate over `[GetAttributeValuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetAttributeValuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetAttributeValuesOutputResponse` extension PricingClient { + /// Paginate over `[GetAttributeValuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetAttributeValuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetAttributeValuesOutputResponse` public func getAttributeValuesPaginated(input: GetAttributeValuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetAttributeValuesInput.nextToken, outputKey: \GetAttributeValuesOutputResponse.nextToken, paginationFunction: self.getAttributeValues(input:)) } @@ -50,16 +48,15 @@ extension GetAttributeValuesInput: ClientRuntime.PaginateToken { serviceCode: self.serviceCode )} } - -/// Paginate over `[GetProductsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetProductsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetProductsOutputResponse` extension PricingClient { + /// Paginate over `[GetProductsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetProductsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetProductsOutputResponse` public func getProductsPaginated(input: GetProductsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetProductsInput.nextToken, outputKey: \GetProductsOutputResponse.nextToken, paginationFunction: self.getProducts(input:)) } diff --git a/Sources/Services/AWSPrivateNetworks/Paginators.swift b/Sources/Services/AWSPrivateNetworks/Paginators.swift index 9804c6f7a52..7208656272d 100644 --- a/Sources/Services/AWSPrivateNetworks/Paginators.swift +++ b/Sources/Services/AWSPrivateNetworks/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDeviceIdentifiersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeviceIdentifiersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeviceIdentifiersOutputResponse` extension PrivateNetworksClient { + /// Paginate over `[ListDeviceIdentifiersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeviceIdentifiersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeviceIdentifiersOutputResponse` public func listDeviceIdentifiersPaginated(input: ListDeviceIdentifiersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeviceIdentifiersInput.startToken, outputKey: \ListDeviceIdentifiersOutputResponse.nextToken, paginationFunction: self.listDeviceIdentifiers(input:)) } @@ -27,24 +26,23 @@ extension ListDeviceIdentifiersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeviceIdentifiersPaginated` -/// to access the nested member `[PrivateNetworksClientTypes.DeviceIdentifier]` -/// - Returns: `[PrivateNetworksClientTypes.DeviceIdentifier]` extension PaginatorSequence where Input == ListDeviceIdentifiersInput, Output == ListDeviceIdentifiersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeviceIdentifiersPaginated` + /// to access the nested member `[PrivateNetworksClientTypes.DeviceIdentifier]` + /// - Returns: `[PrivateNetworksClientTypes.DeviceIdentifier]` public func deviceIdentifiers() async throws -> [PrivateNetworksClientTypes.DeviceIdentifier] { return try await self.asyncCompactMap { item in item.deviceIdentifiers } } } - -/// Paginate over `[ListNetworkResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworkResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworkResourcesOutputResponse` extension PrivateNetworksClient { + /// Paginate over `[ListNetworkResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworkResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworkResourcesOutputResponse` public func listNetworkResourcesPaginated(input: ListNetworkResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworkResourcesInput.startToken, outputKey: \ListNetworkResourcesOutputResponse.nextToken, paginationFunction: self.listNetworkResources(input:)) } @@ -60,24 +58,23 @@ extension ListNetworkResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNetworkResourcesPaginated` -/// to access the nested member `[PrivateNetworksClientTypes.NetworkResource]` -/// - Returns: `[PrivateNetworksClientTypes.NetworkResource]` extension PaginatorSequence where Input == ListNetworkResourcesInput, Output == ListNetworkResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNetworkResourcesPaginated` + /// to access the nested member `[PrivateNetworksClientTypes.NetworkResource]` + /// - Returns: `[PrivateNetworksClientTypes.NetworkResource]` public func networkResources() async throws -> [PrivateNetworksClientTypes.NetworkResource] { return try await self.asyncCompactMap { item in item.networkResources } } } - -/// Paginate over `[ListNetworksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworksOutputResponse` extension PrivateNetworksClient { + /// Paginate over `[ListNetworksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworksOutputResponse` public func listNetworksPaginated(input: ListNetworksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworksInput.startToken, outputKey: \ListNetworksOutputResponse.nextToken, paginationFunction: self.listNetworks(input:)) } @@ -92,24 +89,23 @@ extension ListNetworksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNetworksPaginated` -/// to access the nested member `[PrivateNetworksClientTypes.Network]` -/// - Returns: `[PrivateNetworksClientTypes.Network]` extension PaginatorSequence where Input == ListNetworksInput, Output == ListNetworksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNetworksPaginated` + /// to access the nested member `[PrivateNetworksClientTypes.Network]` + /// - Returns: `[PrivateNetworksClientTypes.Network]` public func networks() async throws -> [PrivateNetworksClientTypes.Network] { return try await self.asyncCompactMap { item in item.networks } } } - -/// Paginate over `[ListNetworkSitesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworkSitesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworkSitesOutputResponse` extension PrivateNetworksClient { + /// Paginate over `[ListNetworkSitesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworkSitesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworkSitesOutputResponse` public func listNetworkSitesPaginated(input: ListNetworkSitesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworkSitesInput.startToken, outputKey: \ListNetworkSitesOutputResponse.nextToken, paginationFunction: self.listNetworkSites(input:)) } @@ -125,24 +121,23 @@ extension ListNetworkSitesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNetworkSitesPaginated` -/// to access the nested member `[PrivateNetworksClientTypes.NetworkSite]` -/// - Returns: `[PrivateNetworksClientTypes.NetworkSite]` extension PaginatorSequence where Input == ListNetworkSitesInput, Output == ListNetworkSitesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNetworkSitesPaginated` + /// to access the nested member `[PrivateNetworksClientTypes.NetworkSite]` + /// - Returns: `[PrivateNetworksClientTypes.NetworkSite]` public func networkSites() async throws -> [PrivateNetworksClientTypes.NetworkSite] { return try await self.asyncCompactMap { item in item.networkSites } } } - -/// Paginate over `[ListOrdersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrdersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrdersOutputResponse` extension PrivateNetworksClient { + /// Paginate over `[ListOrdersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrdersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrdersOutputResponse` public func listOrdersPaginated(input: ListOrdersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrdersInput.startToken, outputKey: \ListOrdersOutputResponse.nextToken, paginationFunction: self.listOrders(input:)) } @@ -158,10 +153,10 @@ extension ListOrdersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOrdersPaginated` -/// to access the nested member `[PrivateNetworksClientTypes.Order]` -/// - Returns: `[PrivateNetworksClientTypes.Order]` extension PaginatorSequence where Input == ListOrdersInput, Output == ListOrdersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOrdersPaginated` + /// to access the nested member `[PrivateNetworksClientTypes.Order]` + /// - Returns: `[PrivateNetworksClientTypes.Order]` public func orders() async throws -> [PrivateNetworksClientTypes.Order] { return try await self.asyncCompactMap { item in item.orders } } diff --git a/Sources/Services/AWSProton/Paginators.swift b/Sources/Services/AWSProton/Paginators.swift index 8b837d34e83..3b052b71e41 100644 --- a/Sources/Services/AWSProton/Paginators.swift +++ b/Sources/Services/AWSProton/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListRepositorySyncDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRepositorySyncDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRepositorySyncDefinitionsOutputResponse` extension ProtonClient { + /// Paginate over `[ListRepositorySyncDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRepositorySyncDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositorySyncDefinitionsOutputResponse` public func listRepositorySyncDefinitionsPaginated(input: ListRepositorySyncDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRepositorySyncDefinitionsInput.nextToken, outputKey: \ListRepositorySyncDefinitionsOutputResponse.nextToken, paginationFunction: self.listRepositorySyncDefinitions(input:)) } @@ -27,24 +26,23 @@ extension ListRepositorySyncDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRepositorySyncDefinitionsPaginated` -/// to access the nested member `[ProtonClientTypes.RepositorySyncDefinition]` -/// - Returns: `[ProtonClientTypes.RepositorySyncDefinition]` extension PaginatorSequence where Input == ListRepositorySyncDefinitionsInput, Output == ListRepositorySyncDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRepositorySyncDefinitionsPaginated` + /// to access the nested member `[ProtonClientTypes.RepositorySyncDefinition]` + /// - Returns: `[ProtonClientTypes.RepositorySyncDefinition]` public func syncDefinitions() async throws -> [ProtonClientTypes.RepositorySyncDefinition] { return try await self.asyncCompactMap { item in item.syncDefinitions } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension ProtonClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -59,10 +57,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[ProtonClientTypes.Tag]` -/// - Returns: `[ProtonClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[ProtonClientTypes.Tag]` + /// - Returns: `[ProtonClientTypes.Tag]` public func tags() async throws -> [ProtonClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSQLDB/Paginators.swift b/Sources/Services/AWSQLDB/Paginators.swift index 027437d55fd..adb71166656 100644 --- a/Sources/Services/AWSQLDB/Paginators.swift +++ b/Sources/Services/AWSQLDB/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListJournalKinesisStreamsForLedgerOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJournalKinesisStreamsForLedgerInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJournalKinesisStreamsForLedgerOutputResponse` extension QLDBClient { + /// Paginate over `[ListJournalKinesisStreamsForLedgerOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJournalKinesisStreamsForLedgerInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJournalKinesisStreamsForLedgerOutputResponse` public func listJournalKinesisStreamsForLedgerPaginated(input: ListJournalKinesisStreamsForLedgerInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJournalKinesisStreamsForLedgerInput.nextToken, outputKey: \ListJournalKinesisStreamsForLedgerOutputResponse.nextToken, paginationFunction: self.listJournalKinesisStreamsForLedger(input:)) } @@ -25,16 +24,15 @@ extension ListJournalKinesisStreamsForLedgerInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListJournalS3ExportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJournalS3ExportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJournalS3ExportsOutputResponse` extension QLDBClient { + /// Paginate over `[ListJournalS3ExportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJournalS3ExportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJournalS3ExportsOutputResponse` public func listJournalS3ExportsPaginated(input: ListJournalS3ExportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJournalS3ExportsInput.nextToken, outputKey: \ListJournalS3ExportsOutputResponse.nextToken, paginationFunction: self.listJournalS3Exports(input:)) } @@ -47,16 +45,15 @@ extension ListJournalS3ExportsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListJournalS3ExportsForLedgerOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJournalS3ExportsForLedgerInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJournalS3ExportsForLedgerOutputResponse` extension QLDBClient { + /// Paginate over `[ListJournalS3ExportsForLedgerOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJournalS3ExportsForLedgerInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJournalS3ExportsForLedgerOutputResponse` public func listJournalS3ExportsForLedgerPaginated(input: ListJournalS3ExportsForLedgerInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJournalS3ExportsForLedgerInput.nextToken, outputKey: \ListJournalS3ExportsForLedgerOutputResponse.nextToken, paginationFunction: self.listJournalS3ExportsForLedger(input:)) } @@ -70,16 +67,15 @@ extension ListJournalS3ExportsForLedgerInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListLedgersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLedgersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLedgersOutputResponse` extension QLDBClient { + /// Paginate over `[ListLedgersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLedgersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLedgersOutputResponse` public func listLedgersPaginated(input: ListLedgersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLedgersInput.nextToken, outputKey: \ListLedgersOutputResponse.nextToken, paginationFunction: self.listLedgers(input:)) } diff --git a/Sources/Services/AWSQuickSight/Paginators.swift b/Sources/Services/AWSQuickSight/Paginators.swift index 82362abd31a..be154b9d5fd 100644 --- a/Sources/Services/AWSQuickSight/Paginators.swift +++ b/Sources/Services/AWSQuickSight/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAnalysesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnalysesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnalysesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListAnalysesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnalysesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnalysesOutputResponse` public func listAnalysesPaginated(input: ListAnalysesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnalysesInput.nextToken, outputKey: \ListAnalysesOutputResponse.nextToken, paginationFunction: self.listAnalyses(input:)) } @@ -26,24 +25,23 @@ extension ListAnalysesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAnalysesPaginated` -/// to access the nested member `[QuickSightClientTypes.AnalysisSummary]` -/// - Returns: `[QuickSightClientTypes.AnalysisSummary]` extension PaginatorSequence where Input == ListAnalysesInput, Output == ListAnalysesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAnalysesPaginated` + /// to access the nested member `[QuickSightClientTypes.AnalysisSummary]` + /// - Returns: `[QuickSightClientTypes.AnalysisSummary]` public func analysisSummaryList() async throws -> [QuickSightClientTypes.AnalysisSummary] { return try await self.asyncCompactMap { item in item.analysisSummaryList } } } - -/// Paginate over `[ListDashboardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDashboardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListDashboardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDashboardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDashboardsOutputResponse` public func listDashboardsPaginated(input: ListDashboardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDashboardsInput.nextToken, outputKey: \ListDashboardsOutputResponse.nextToken, paginationFunction: self.listDashboards(input:)) } @@ -58,24 +56,23 @@ extension ListDashboardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` -/// to access the nested member `[QuickSightClientTypes.DashboardSummary]` -/// - Returns: `[QuickSightClientTypes.DashboardSummary]` extension PaginatorSequence where Input == ListDashboardsInput, Output == ListDashboardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDashboardsPaginated` + /// to access the nested member `[QuickSightClientTypes.DashboardSummary]` + /// - Returns: `[QuickSightClientTypes.DashboardSummary]` public func dashboardSummaryList() async throws -> [QuickSightClientTypes.DashboardSummary] { return try await self.asyncCompactMap { item in item.dashboardSummaryList } } } - -/// Paginate over `[ListDashboardVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDashboardVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDashboardVersionsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListDashboardVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDashboardVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDashboardVersionsOutputResponse` public func listDashboardVersionsPaginated(input: ListDashboardVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDashboardVersionsInput.nextToken, outputKey: \ListDashboardVersionsOutputResponse.nextToken, paginationFunction: self.listDashboardVersions(input:)) } @@ -91,24 +88,23 @@ extension ListDashboardVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDashboardVersionsPaginated` -/// to access the nested member `[QuickSightClientTypes.DashboardVersionSummary]` -/// - Returns: `[QuickSightClientTypes.DashboardVersionSummary]` extension PaginatorSequence where Input == ListDashboardVersionsInput, Output == ListDashboardVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDashboardVersionsPaginated` + /// to access the nested member `[QuickSightClientTypes.DashboardVersionSummary]` + /// - Returns: `[QuickSightClientTypes.DashboardVersionSummary]` public func dashboardVersionSummaryList() async throws -> [QuickSightClientTypes.DashboardVersionSummary] { return try await self.asyncCompactMap { item in item.dashboardVersionSummaryList } } } - -/// Paginate over `[ListDataSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSetsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListDataSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSetsOutputResponse` public func listDataSetsPaginated(input: ListDataSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSetsInput.nextToken, outputKey: \ListDataSetsOutputResponse.nextToken, paginationFunction: self.listDataSets(input:)) } @@ -123,24 +119,23 @@ extension ListDataSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataSetsPaginated` -/// to access the nested member `[QuickSightClientTypes.DataSetSummary]` -/// - Returns: `[QuickSightClientTypes.DataSetSummary]` extension PaginatorSequence where Input == ListDataSetsInput, Output == ListDataSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataSetsPaginated` + /// to access the nested member `[QuickSightClientTypes.DataSetSummary]` + /// - Returns: `[QuickSightClientTypes.DataSetSummary]` public func dataSetSummaries() async throws -> [QuickSightClientTypes.DataSetSummary] { return try await self.asyncCompactMap { item in item.dataSetSummaries } } } - -/// Paginate over `[ListDataSourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataSourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataSourcesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListDataSourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataSourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataSourcesOutputResponse` public func listDataSourcesPaginated(input: ListDataSourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataSourcesInput.nextToken, outputKey: \ListDataSourcesOutputResponse.nextToken, paginationFunction: self.listDataSources(input:)) } @@ -155,24 +150,23 @@ extension ListDataSourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataSourcesPaginated` -/// to access the nested member `[QuickSightClientTypes.DataSource]` -/// - Returns: `[QuickSightClientTypes.DataSource]` extension PaginatorSequence where Input == ListDataSourcesInput, Output == ListDataSourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataSourcesPaginated` + /// to access the nested member `[QuickSightClientTypes.DataSource]` + /// - Returns: `[QuickSightClientTypes.DataSource]` public func dataSources() async throws -> [QuickSightClientTypes.DataSource] { return try await self.asyncCompactMap { item in item.dataSources } } } - -/// Paginate over `[ListIngestionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIngestionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIngestionsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListIngestionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIngestionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIngestionsOutputResponse` public func listIngestionsPaginated(input: ListIngestionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIngestionsInput.nextToken, outputKey: \ListIngestionsOutputResponse.nextToken, paginationFunction: self.listIngestions(input:)) } @@ -188,24 +182,23 @@ extension ListIngestionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIngestionsPaginated` -/// to access the nested member `[QuickSightClientTypes.Ingestion]` -/// - Returns: `[QuickSightClientTypes.Ingestion]` extension PaginatorSequence where Input == ListIngestionsInput, Output == ListIngestionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIngestionsPaginated` + /// to access the nested member `[QuickSightClientTypes.Ingestion]` + /// - Returns: `[QuickSightClientTypes.Ingestion]` public func ingestions() async throws -> [QuickSightClientTypes.Ingestion] { return try await self.asyncCompactMap { item in item.ingestions } } } - -/// Paginate over `[ListNamespacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNamespacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNamespacesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListNamespacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNamespacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNamespacesOutputResponse` public func listNamespacesPaginated(input: ListNamespacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNamespacesInput.nextToken, outputKey: \ListNamespacesOutputResponse.nextToken, paginationFunction: self.listNamespaces(input:)) } @@ -220,24 +213,23 @@ extension ListNamespacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNamespacesPaginated` -/// to access the nested member `[QuickSightClientTypes.NamespaceInfoV2]` -/// - Returns: `[QuickSightClientTypes.NamespaceInfoV2]` extension PaginatorSequence where Input == ListNamespacesInput, Output == ListNamespacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNamespacesPaginated` + /// to access the nested member `[QuickSightClientTypes.NamespaceInfoV2]` + /// - Returns: `[QuickSightClientTypes.NamespaceInfoV2]` public func namespaces() async throws -> [QuickSightClientTypes.NamespaceInfoV2] { return try await self.asyncCompactMap { item in item.namespaces } } } - -/// Paginate over `[ListTemplateAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTemplateAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTemplateAliasesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListTemplateAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTemplateAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTemplateAliasesOutputResponse` public func listTemplateAliasesPaginated(input: ListTemplateAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTemplateAliasesInput.nextToken, outputKey: \ListTemplateAliasesOutputResponse.nextToken, paginationFunction: self.listTemplateAliases(input:)) } @@ -253,24 +245,23 @@ extension ListTemplateAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTemplateAliasesPaginated` -/// to access the nested member `[QuickSightClientTypes.TemplateAlias]` -/// - Returns: `[QuickSightClientTypes.TemplateAlias]` extension PaginatorSequence where Input == ListTemplateAliasesInput, Output == ListTemplateAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTemplateAliasesPaginated` + /// to access the nested member `[QuickSightClientTypes.TemplateAlias]` + /// - Returns: `[QuickSightClientTypes.TemplateAlias]` public func templateAliasList() async throws -> [QuickSightClientTypes.TemplateAlias] { return try await self.asyncCompactMap { item in item.templateAliasList } } } - -/// Paginate over `[ListTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTemplatesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTemplatesOutputResponse` public func listTemplatesPaginated(input: ListTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTemplatesInput.nextToken, outputKey: \ListTemplatesOutputResponse.nextToken, paginationFunction: self.listTemplates(input:)) } @@ -285,24 +276,23 @@ extension ListTemplatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTemplatesPaginated` -/// to access the nested member `[QuickSightClientTypes.TemplateSummary]` -/// - Returns: `[QuickSightClientTypes.TemplateSummary]` extension PaginatorSequence where Input == ListTemplatesInput, Output == ListTemplatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTemplatesPaginated` + /// to access the nested member `[QuickSightClientTypes.TemplateSummary]` + /// - Returns: `[QuickSightClientTypes.TemplateSummary]` public func templateSummaryList() async throws -> [QuickSightClientTypes.TemplateSummary] { return try await self.asyncCompactMap { item in item.templateSummaryList } } } - -/// Paginate over `[ListTemplateVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTemplateVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTemplateVersionsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListTemplateVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTemplateVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTemplateVersionsOutputResponse` public func listTemplateVersionsPaginated(input: ListTemplateVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTemplateVersionsInput.nextToken, outputKey: \ListTemplateVersionsOutputResponse.nextToken, paginationFunction: self.listTemplateVersions(input:)) } @@ -318,24 +308,23 @@ extension ListTemplateVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTemplateVersionsPaginated` -/// to access the nested member `[QuickSightClientTypes.TemplateVersionSummary]` -/// - Returns: `[QuickSightClientTypes.TemplateVersionSummary]` extension PaginatorSequence where Input == ListTemplateVersionsInput, Output == ListTemplateVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTemplateVersionsPaginated` + /// to access the nested member `[QuickSightClientTypes.TemplateVersionSummary]` + /// - Returns: `[QuickSightClientTypes.TemplateVersionSummary]` public func templateVersionSummaryList() async throws -> [QuickSightClientTypes.TemplateVersionSummary] { return try await self.asyncCompactMap { item in item.templateVersionSummaryList } } } - -/// Paginate over `[ListThemesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThemesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThemesOutputResponse` extension QuickSightClient { + /// Paginate over `[ListThemesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThemesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThemesOutputResponse` public func listThemesPaginated(input: ListThemesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThemesInput.nextToken, outputKey: \ListThemesOutputResponse.nextToken, paginationFunction: self.listThemes(input:)) } @@ -351,24 +340,23 @@ extension ListThemesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThemesPaginated` -/// to access the nested member `[QuickSightClientTypes.ThemeSummary]` -/// - Returns: `[QuickSightClientTypes.ThemeSummary]` extension PaginatorSequence where Input == ListThemesInput, Output == ListThemesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThemesPaginated` + /// to access the nested member `[QuickSightClientTypes.ThemeSummary]` + /// - Returns: `[QuickSightClientTypes.ThemeSummary]` public func themeSummaryList() async throws -> [QuickSightClientTypes.ThemeSummary] { return try await self.asyncCompactMap { item in item.themeSummaryList } } } - -/// Paginate over `[ListThemeVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListThemeVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListThemeVersionsOutputResponse` extension QuickSightClient { + /// Paginate over `[ListThemeVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListThemeVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListThemeVersionsOutputResponse` public func listThemeVersionsPaginated(input: ListThemeVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListThemeVersionsInput.nextToken, outputKey: \ListThemeVersionsOutputResponse.nextToken, paginationFunction: self.listThemeVersions(input:)) } @@ -384,24 +372,23 @@ extension ListThemeVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listThemeVersionsPaginated` -/// to access the nested member `[QuickSightClientTypes.ThemeVersionSummary]` -/// - Returns: `[QuickSightClientTypes.ThemeVersionSummary]` extension PaginatorSequence where Input == ListThemeVersionsInput, Output == ListThemeVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listThemeVersionsPaginated` + /// to access the nested member `[QuickSightClientTypes.ThemeVersionSummary]` + /// - Returns: `[QuickSightClientTypes.ThemeVersionSummary]` public func themeVersionSummaryList() async throws -> [QuickSightClientTypes.ThemeVersionSummary] { return try await self.asyncCompactMap { item in item.themeVersionSummaryList } } } - -/// Paginate over `[SearchAnalysesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchAnalysesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchAnalysesOutputResponse` extension QuickSightClient { + /// Paginate over `[SearchAnalysesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchAnalysesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchAnalysesOutputResponse` public func searchAnalysesPaginated(input: SearchAnalysesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchAnalysesInput.nextToken, outputKey: \SearchAnalysesOutputResponse.nextToken, paginationFunction: self.searchAnalyses(input:)) } @@ -417,24 +404,23 @@ extension SearchAnalysesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchAnalysesPaginated` -/// to access the nested member `[QuickSightClientTypes.AnalysisSummary]` -/// - Returns: `[QuickSightClientTypes.AnalysisSummary]` extension PaginatorSequence where Input == SearchAnalysesInput, Output == SearchAnalysesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchAnalysesPaginated` + /// to access the nested member `[QuickSightClientTypes.AnalysisSummary]` + /// - Returns: `[QuickSightClientTypes.AnalysisSummary]` public func analysisSummaryList() async throws -> [QuickSightClientTypes.AnalysisSummary] { return try await self.asyncCompactMap { item in item.analysisSummaryList } } } - -/// Paginate over `[SearchDashboardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchDashboardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchDashboardsOutputResponse` extension QuickSightClient { + /// Paginate over `[SearchDashboardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchDashboardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchDashboardsOutputResponse` public func searchDashboardsPaginated(input: SearchDashboardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchDashboardsInput.nextToken, outputKey: \SearchDashboardsOutputResponse.nextToken, paginationFunction: self.searchDashboards(input:)) } @@ -450,24 +436,23 @@ extension SearchDashboardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchDashboardsPaginated` -/// to access the nested member `[QuickSightClientTypes.DashboardSummary]` -/// - Returns: `[QuickSightClientTypes.DashboardSummary]` extension PaginatorSequence where Input == SearchDashboardsInput, Output == SearchDashboardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchDashboardsPaginated` + /// to access the nested member `[QuickSightClientTypes.DashboardSummary]` + /// - Returns: `[QuickSightClientTypes.DashboardSummary]` public func dashboardSummaryList() async throws -> [QuickSightClientTypes.DashboardSummary] { return try await self.asyncCompactMap { item in item.dashboardSummaryList } } } - -/// Paginate over `[SearchDataSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchDataSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchDataSetsOutputResponse` extension QuickSightClient { + /// Paginate over `[SearchDataSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchDataSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchDataSetsOutputResponse` public func searchDataSetsPaginated(input: SearchDataSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchDataSetsInput.nextToken, outputKey: \SearchDataSetsOutputResponse.nextToken, paginationFunction: self.searchDataSets(input:)) } @@ -483,24 +468,23 @@ extension SearchDataSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchDataSetsPaginated` -/// to access the nested member `[QuickSightClientTypes.DataSetSummary]` -/// - Returns: `[QuickSightClientTypes.DataSetSummary]` extension PaginatorSequence where Input == SearchDataSetsInput, Output == SearchDataSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchDataSetsPaginated` + /// to access the nested member `[QuickSightClientTypes.DataSetSummary]` + /// - Returns: `[QuickSightClientTypes.DataSetSummary]` public func dataSetSummaries() async throws -> [QuickSightClientTypes.DataSetSummary] { return try await self.asyncCompactMap { item in item.dataSetSummaries } } } - -/// Paginate over `[SearchDataSourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchDataSourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchDataSourcesOutputResponse` extension QuickSightClient { + /// Paginate over `[SearchDataSourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchDataSourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchDataSourcesOutputResponse` public func searchDataSourcesPaginated(input: SearchDataSourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchDataSourcesInput.nextToken, outputKey: \SearchDataSourcesOutputResponse.nextToken, paginationFunction: self.searchDataSources(input:)) } @@ -516,10 +500,10 @@ extension SearchDataSourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchDataSourcesPaginated` -/// to access the nested member `[QuickSightClientTypes.DataSourceSummary]` -/// - Returns: `[QuickSightClientTypes.DataSourceSummary]` extension PaginatorSequence where Input == SearchDataSourcesInput, Output == SearchDataSourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchDataSourcesPaginated` + /// to access the nested member `[QuickSightClientTypes.DataSourceSummary]` + /// - Returns: `[QuickSightClientTypes.DataSourceSummary]` public func dataSourceSummaries() async throws -> [QuickSightClientTypes.DataSourceSummary] { return try await self.asyncCompactMap { item in item.dataSourceSummaries } } diff --git a/Sources/Services/AWSRAM/EndpointResolver.swift b/Sources/Services/AWSRAM/EndpointResolver.swift index 2e669157c1a..8bac4cbb4c2 100644 --- a/Sources/Services/AWSRAM/EndpointResolver.swift +++ b/Sources/Services/AWSRAM/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://ram.{Region}.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-east-1\"]}],\"endpoint\":{\"url\":\"https://ram.us-gov-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-west-1\"]}],\"endpoint\":{\"url\":\"https://ram.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://ram.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSRAM/Paginators.swift b/Sources/Services/AWSRAM/Paginators.swift index dc58672527a..55c6ef415d6 100644 --- a/Sources/Services/AWSRAM/Paginators.swift +++ b/Sources/Services/AWSRAM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetResourcePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` extension RAMClient { + /// Paginate over `[GetResourcePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` public func getResourcePoliciesPaginated(input: GetResourcePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcePoliciesInput.nextToken, outputKey: \GetResourcePoliciesOutputResponse.nextToken, paginationFunction: self.getResourcePolicies(input:)) } @@ -26,16 +25,15 @@ extension GetResourcePoliciesInput: ClientRuntime.PaginateToken { resourceArns: self.resourceArns )} } - -/// Paginate over `[GetResourceShareAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceShareAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceShareAssociationsOutputResponse` extension RAMClient { + /// Paginate over `[GetResourceShareAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceShareAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceShareAssociationsOutputResponse` public func getResourceShareAssociationsPaginated(input: GetResourceShareAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceShareAssociationsInput.nextToken, outputKey: \GetResourceShareAssociationsOutputResponse.nextToken, paginationFunction: self.getResourceShareAssociations(input:)) } @@ -53,16 +51,15 @@ extension GetResourceShareAssociationsInput: ClientRuntime.PaginateToken { resourceShareArns: self.resourceShareArns )} } - -/// Paginate over `[GetResourceShareInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceShareInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceShareInvitationsOutputResponse` extension RAMClient { + /// Paginate over `[GetResourceShareInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceShareInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceShareInvitationsOutputResponse` public func getResourceShareInvitationsPaginated(input: GetResourceShareInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceShareInvitationsInput.nextToken, outputKey: \GetResourceShareInvitationsOutputResponse.nextToken, paginationFunction: self.getResourceShareInvitations(input:)) } @@ -77,16 +74,15 @@ extension GetResourceShareInvitationsInput: ClientRuntime.PaginateToken { resourceShareInvitationArns: self.resourceShareInvitationArns )} } - -/// Paginate over `[GetResourceSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourceSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourceSharesOutputResponse` extension RAMClient { + /// Paginate over `[GetResourceSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourceSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourceSharesOutputResponse` public func getResourceSharesPaginated(input: GetResourceSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourceSharesInput.nextToken, outputKey: \GetResourceSharesOutputResponse.nextToken, paginationFunction: self.getResourceShares(input:)) } @@ -105,16 +101,15 @@ extension GetResourceSharesInput: ClientRuntime.PaginateToken { tagFilters: self.tagFilters )} } - -/// Paginate over `[ListPendingInvitationResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPendingInvitationResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPendingInvitationResourcesOutputResponse` extension RAMClient { + /// Paginate over `[ListPendingInvitationResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPendingInvitationResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPendingInvitationResourcesOutputResponse` public func listPendingInvitationResourcesPaginated(input: ListPendingInvitationResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPendingInvitationResourcesInput.nextToken, outputKey: \ListPendingInvitationResourcesOutputResponse.nextToken, paginationFunction: self.listPendingInvitationResources(input:)) } @@ -129,16 +124,15 @@ extension ListPendingInvitationResourcesInput: ClientRuntime.PaginateToken { resourceShareInvitationArn: self.resourceShareInvitationArn )} } - -/// Paginate over `[ListPermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` extension RAMClient { + /// Paginate over `[ListPermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionsOutputResponse` public func listPermissionsPaginated(input: ListPermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionsInput.nextToken, outputKey: \ListPermissionsOutputResponse.nextToken, paginationFunction: self.listPermissions(input:)) } @@ -152,16 +146,15 @@ extension ListPermissionsInput: ClientRuntime.PaginateToken { resourceType: self.resourceType )} } - -/// Paginate over `[ListPermissionVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionVersionsOutputResponse` extension RAMClient { + /// Paginate over `[ListPermissionVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionVersionsOutputResponse` public func listPermissionVersionsPaginated(input: ListPermissionVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionVersionsInput.nextToken, outputKey: \ListPermissionVersionsOutputResponse.nextToken, paginationFunction: self.listPermissionVersions(input:)) } @@ -175,16 +168,15 @@ extension ListPermissionVersionsInput: ClientRuntime.PaginateToken { permissionArn: self.permissionArn )} } - -/// Paginate over `[ListPrincipalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPrincipalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalsOutputResponse` extension RAMClient { + /// Paginate over `[ListPrincipalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPrincipalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalsOutputResponse` public func listPrincipalsPaginated(input: ListPrincipalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPrincipalsInput.nextToken, outputKey: \ListPrincipalsOutputResponse.nextToken, paginationFunction: self.listPrincipals(input:)) } @@ -202,16 +194,15 @@ extension ListPrincipalsInput: ClientRuntime.PaginateToken { resourceType: self.resourceType )} } - -/// Paginate over `[ListResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` extension RAMClient { + /// Paginate over `[ListResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` public func listResourcesPaginated(input: ListResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesInput.nextToken, outputKey: \ListResourcesOutputResponse.nextToken, paginationFunction: self.listResources(input:)) } @@ -230,16 +221,15 @@ extension ListResourcesInput: ClientRuntime.PaginateToken { resourceType: self.resourceType )} } - -/// Paginate over `[ListResourceSharePermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceSharePermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceSharePermissionsOutputResponse` extension RAMClient { + /// Paginate over `[ListResourceSharePermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceSharePermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceSharePermissionsOutputResponse` public func listResourceSharePermissionsPaginated(input: ListResourceSharePermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceSharePermissionsInput.nextToken, outputKey: \ListResourceSharePermissionsOutputResponse.nextToken, paginationFunction: self.listResourceSharePermissions(input:)) } @@ -253,16 +243,15 @@ extension ListResourceSharePermissionsInput: ClientRuntime.PaginateToken { resourceShareArn: self.resourceShareArn )} } - -/// Paginate over `[ListResourceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceTypesOutputResponse` extension RAMClient { + /// Paginate over `[ListResourceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceTypesOutputResponse` public func listResourceTypesPaginated(input: ListResourceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceTypesInput.nextToken, outputKey: \ListResourceTypesOutputResponse.nextToken, paginationFunction: self.listResourceTypes(input:)) } diff --git a/Sources/Services/AWSRAM/RAMClient.swift b/Sources/Services/AWSRAM/RAMClient.swift index 6d1c35d6014..8e2a744c85e 100644 --- a/Sources/Services/AWSRAM/RAMClient.swift +++ b/Sources/Services/AWSRAM/RAMClient.swift @@ -224,7 +224,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "acceptResourceShareInvitation") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -259,7 +262,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateResourceShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -294,7 +300,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "associateResourceSharePermission") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -329,7 +338,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "createResourceShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -364,7 +376,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteResourceShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -397,7 +412,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateResourceShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -432,7 +450,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "disassociateResourceSharePermission") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -467,7 +488,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "enableSharingWithAwsOrganization") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -499,7 +523,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "getPermission") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -534,7 +561,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "getResourcePolicies") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -569,7 +599,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "getResourceShareAssociations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -604,7 +637,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "getResourceShareInvitations") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -639,7 +675,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "getResourceShares") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -674,7 +713,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPendingInvitationResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -709,7 +751,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPermissionVersions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -744,7 +789,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPermissions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -779,7 +827,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listPrincipals") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -814,7 +865,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listResourceSharePermissions") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -849,7 +903,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listResourceTypes") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -884,7 +941,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "listResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -919,7 +979,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "promoteResourceShareCreatedFromPolicy") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -952,7 +1015,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "rejectResourceShareInvitation") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -987,7 +1053,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "tagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1022,7 +1091,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "untagResource") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -1057,7 +1129,10 @@ extension RAMClient: RAMClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateResourceShare") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSRDS/Paginators.swift b/Sources/Services/AWSRDS/Paginators.swift index f0311e15dac..5f9cbc1af31 100644 --- a/Sources/Services/AWSRDS/Paginators.swift +++ b/Sources/Services/AWSRDS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeBlueGreenDeploymentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeBlueGreenDeploymentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeBlueGreenDeploymentsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeBlueGreenDeploymentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeBlueGreenDeploymentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeBlueGreenDeploymentsOutputResponse` public func describeBlueGreenDeploymentsPaginated(input: DescribeBlueGreenDeploymentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeBlueGreenDeploymentsInput.marker, outputKey: \DescribeBlueGreenDeploymentsOutputResponse.marker, paginationFunction: self.describeBlueGreenDeployments(input:)) } @@ -27,24 +26,23 @@ extension DescribeBlueGreenDeploymentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeBlueGreenDeploymentsPaginated` -/// to access the nested member `[RDSClientTypes.BlueGreenDeployment]` -/// - Returns: `[RDSClientTypes.BlueGreenDeployment]` extension PaginatorSequence where Input == DescribeBlueGreenDeploymentsInput, Output == DescribeBlueGreenDeploymentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeBlueGreenDeploymentsPaginated` + /// to access the nested member `[RDSClientTypes.BlueGreenDeployment]` + /// - Returns: `[RDSClientTypes.BlueGreenDeployment]` public func blueGreenDeployments() async throws -> [RDSClientTypes.BlueGreenDeployment] { return try await self.asyncCompactMap { item in item.blueGreenDeployments } } } - -/// Paginate over `[DescribeCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` extension RDSClient { + /// Paginate over `[DescribeCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCertificatesOutputResponse` public func describeCertificatesPaginated(input: DescribeCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCertificatesInput.marker, outputKey: \DescribeCertificatesOutputResponse.marker, paginationFunction: self.describeCertificates(input:)) } @@ -60,24 +58,23 @@ extension DescribeCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCertificatesPaginated` -/// to access the nested member `[RDSClientTypes.Certificate]` -/// - Returns: `[RDSClientTypes.Certificate]` extension PaginatorSequence where Input == DescribeCertificatesInput, Output == DescribeCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCertificatesPaginated` + /// to access the nested member `[RDSClientTypes.Certificate]` + /// - Returns: `[RDSClientTypes.Certificate]` public func certificates() async throws -> [RDSClientTypes.Certificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[DescribeDBClusterBacktracksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterBacktracksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterBacktracksOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClusterBacktracksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterBacktracksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterBacktracksOutputResponse` public func describeDBClusterBacktracksPaginated(input: DescribeDBClusterBacktracksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterBacktracksInput.marker, outputKey: \DescribeDBClusterBacktracksOutputResponse.marker, paginationFunction: self.describeDBClusterBacktracks(input:)) } @@ -94,24 +91,23 @@ extension DescribeDBClusterBacktracksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterBacktracksPaginated` -/// to access the nested member `[RDSClientTypes.DBClusterBacktrack]` -/// - Returns: `[RDSClientTypes.DBClusterBacktrack]` extension PaginatorSequence where Input == DescribeDBClusterBacktracksInput, Output == DescribeDBClusterBacktracksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterBacktracksPaginated` + /// to access the nested member `[RDSClientTypes.DBClusterBacktrack]` + /// - Returns: `[RDSClientTypes.DBClusterBacktrack]` public func dbClusterBacktracks() async throws -> [RDSClientTypes.DBClusterBacktrack] { return try await self.asyncCompactMap { item in item.dbClusterBacktracks } } } - -/// Paginate over `[DescribeDBClusterEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterEndpointsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClusterEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterEndpointsOutputResponse` public func describeDBClusterEndpointsPaginated(input: DescribeDBClusterEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterEndpointsInput.marker, outputKey: \DescribeDBClusterEndpointsOutputResponse.marker, paginationFunction: self.describeDBClusterEndpoints(input:)) } @@ -128,24 +124,23 @@ extension DescribeDBClusterEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterEndpointsPaginated` -/// to access the nested member `[RDSClientTypes.DBClusterEndpoint]` -/// - Returns: `[RDSClientTypes.DBClusterEndpoint]` extension PaginatorSequence where Input == DescribeDBClusterEndpointsInput, Output == DescribeDBClusterEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterEndpointsPaginated` + /// to access the nested member `[RDSClientTypes.DBClusterEndpoint]` + /// - Returns: `[RDSClientTypes.DBClusterEndpoint]` public func dbClusterEndpoints() async throws -> [RDSClientTypes.DBClusterEndpoint] { return try await self.asyncCompactMap { item in item.dbClusterEndpoints } } } - -/// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClusterParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParameterGroupsOutputResponse` public func describeDBClusterParameterGroupsPaginated(input: DescribeDBClusterParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParameterGroupsInput.marker, outputKey: \DescribeDBClusterParameterGroupsOutputResponse.marker, paginationFunction: self.describeDBClusterParameterGroups(input:)) } @@ -161,24 +156,23 @@ extension DescribeDBClusterParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` -/// to access the nested member `[RDSClientTypes.DBClusterParameterGroup]` -/// - Returns: `[RDSClientTypes.DBClusterParameterGroup]` extension PaginatorSequence where Input == DescribeDBClusterParameterGroupsInput, Output == DescribeDBClusterParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParameterGroupsPaginated` + /// to access the nested member `[RDSClientTypes.DBClusterParameterGroup]` + /// - Returns: `[RDSClientTypes.DBClusterParameterGroup]` public func dbClusterParameterGroups() async throws -> [RDSClientTypes.DBClusterParameterGroup] { return try await self.asyncCompactMap { item in item.dbClusterParameterGroups } } } - -/// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClusterParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterParametersOutputResponse` public func describeDBClusterParametersPaginated(input: DescribeDBClusterParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterParametersInput.marker, outputKey: \DescribeDBClusterParametersOutputResponse.marker, paginationFunction: self.describeDBClusterParameters(input:)) } @@ -195,24 +189,23 @@ extension DescribeDBClusterParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` -/// to access the nested member `[RDSClientTypes.Parameter]` -/// - Returns: `[RDSClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDBClusterParametersInput, Output == DescribeDBClusterParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterParametersPaginated` + /// to access the nested member `[RDSClientTypes.Parameter]` + /// - Returns: `[RDSClientTypes.Parameter]` public func parameters() async throws -> [RDSClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeDBClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClustersOutputResponse` public func describeDBClustersPaginated(input: DescribeDBClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClustersInput.marker, outputKey: \DescribeDBClustersOutputResponse.marker, paginationFunction: self.describeDBClusters(input:)) } @@ -229,24 +222,23 @@ extension DescribeDBClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` -/// to access the nested member `[RDSClientTypes.DBCluster]` -/// - Returns: `[RDSClientTypes.DBCluster]` extension PaginatorSequence where Input == DescribeDBClustersInput, Output == DescribeDBClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClustersPaginated` + /// to access the nested member `[RDSClientTypes.DBCluster]` + /// - Returns: `[RDSClientTypes.DBCluster]` public func dbClusters() async throws -> [RDSClientTypes.DBCluster] { return try await self.asyncCompactMap { item in item.dbClusters } } } - -/// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBClusterSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBClusterSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBClusterSnapshotsOutputResponse` public func describeDBClusterSnapshotsPaginated(input: DescribeDBClusterSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBClusterSnapshotsInput.marker, outputKey: \DescribeDBClusterSnapshotsOutputResponse.marker, paginationFunction: self.describeDBClusterSnapshots(input:)) } @@ -266,24 +258,23 @@ extension DescribeDBClusterSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` -/// to access the nested member `[RDSClientTypes.DBClusterSnapshot]` -/// - Returns: `[RDSClientTypes.DBClusterSnapshot]` extension PaginatorSequence where Input == DescribeDBClusterSnapshotsInput, Output == DescribeDBClusterSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBClusterSnapshotsPaginated` + /// to access the nested member `[RDSClientTypes.DBClusterSnapshot]` + /// - Returns: `[RDSClientTypes.DBClusterSnapshot]` public func dbClusterSnapshots() async throws -> [RDSClientTypes.DBClusterSnapshot] { return try await self.asyncCompactMap { item in item.dbClusterSnapshots } } } - -/// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBEngineVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBEngineVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBEngineVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBEngineVersionsOutputResponse` public func describeDBEngineVersionsPaginated(input: DescribeDBEngineVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBEngineVersionsInput.marker, outputKey: \DescribeDBEngineVersionsOutputResponse.marker, paginationFunction: self.describeDBEngineVersions(input:)) } @@ -305,24 +296,23 @@ extension DescribeDBEngineVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` -/// to access the nested member `[RDSClientTypes.DBEngineVersion]` -/// - Returns: `[RDSClientTypes.DBEngineVersion]` extension PaginatorSequence where Input == DescribeDBEngineVersionsInput, Output == DescribeDBEngineVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBEngineVersionsPaginated` + /// to access the nested member `[RDSClientTypes.DBEngineVersion]` + /// - Returns: `[RDSClientTypes.DBEngineVersion]` public func dbEngineVersions() async throws -> [RDSClientTypes.DBEngineVersion] { return try await self.asyncCompactMap { item in item.dbEngineVersions } } } - -/// Paginate over `[DescribeDBInstanceAutomatedBackupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBInstanceAutomatedBackupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstanceAutomatedBackupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBInstanceAutomatedBackupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBInstanceAutomatedBackupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstanceAutomatedBackupsOutputResponse` public func describeDBInstanceAutomatedBackupsPaginated(input: DescribeDBInstanceAutomatedBackupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBInstanceAutomatedBackupsInput.marker, outputKey: \DescribeDBInstanceAutomatedBackupsOutputResponse.marker, paginationFunction: self.describeDBInstanceAutomatedBackups(input:)) } @@ -340,24 +330,23 @@ extension DescribeDBInstanceAutomatedBackupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBInstanceAutomatedBackupsPaginated` -/// to access the nested member `[RDSClientTypes.DBInstanceAutomatedBackup]` -/// - Returns: `[RDSClientTypes.DBInstanceAutomatedBackup]` extension PaginatorSequence where Input == DescribeDBInstanceAutomatedBackupsInput, Output == DescribeDBInstanceAutomatedBackupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBInstanceAutomatedBackupsPaginated` + /// to access the nested member `[RDSClientTypes.DBInstanceAutomatedBackup]` + /// - Returns: `[RDSClientTypes.DBInstanceAutomatedBackup]` public func dbInstanceAutomatedBackups() async throws -> [RDSClientTypes.DBInstanceAutomatedBackup] { return try await self.asyncCompactMap { item in item.dbInstanceAutomatedBackups } } } - -/// Paginate over `[DescribeDBInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBInstancesOutputResponse` public func describeDBInstancesPaginated(input: DescribeDBInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBInstancesInput.marker, outputKey: \DescribeDBInstancesOutputResponse.marker, paginationFunction: self.describeDBInstances(input:)) } @@ -373,24 +362,23 @@ extension DescribeDBInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` -/// to access the nested member `[RDSClientTypes.DBInstance]` -/// - Returns: `[RDSClientTypes.DBInstance]` extension PaginatorSequence where Input == DescribeDBInstancesInput, Output == DescribeDBInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBInstancesPaginated` + /// to access the nested member `[RDSClientTypes.DBInstance]` + /// - Returns: `[RDSClientTypes.DBInstance]` public func dbInstances() async throws -> [RDSClientTypes.DBInstance] { return try await self.asyncCompactMap { item in item.dbInstances } } } - -/// Paginate over `[DescribeDBLogFilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBLogFilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBLogFilesOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBLogFilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBLogFilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBLogFilesOutputResponse` public func describeDBLogFilesPaginated(input: DescribeDBLogFilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBLogFilesInput.marker, outputKey: \DescribeDBLogFilesOutputResponse.marker, paginationFunction: self.describeDBLogFiles(input:)) } @@ -409,24 +397,23 @@ extension DescribeDBLogFilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBLogFilesPaginated` -/// to access the nested member `[RDSClientTypes.DescribeDBLogFilesDetails]` -/// - Returns: `[RDSClientTypes.DescribeDBLogFilesDetails]` extension PaginatorSequence where Input == DescribeDBLogFilesInput, Output == DescribeDBLogFilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBLogFilesPaginated` + /// to access the nested member `[RDSClientTypes.DescribeDBLogFilesDetails]` + /// - Returns: `[RDSClientTypes.DescribeDBLogFilesDetails]` public func describeDBLogFiles() async throws -> [RDSClientTypes.DescribeDBLogFilesDetails] { return try await self.asyncCompactMap { item in item.describeDBLogFiles } } } - -/// Paginate over `[DescribeDBParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParameterGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParameterGroupsOutputResponse` public func describeDBParameterGroupsPaginated(input: DescribeDBParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBParameterGroupsInput.marker, outputKey: \DescribeDBParameterGroupsOutputResponse.marker, paginationFunction: self.describeDBParameterGroups(input:)) } @@ -442,24 +429,23 @@ extension DescribeDBParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBParameterGroupsPaginated` -/// to access the nested member `[RDSClientTypes.DBParameterGroup]` -/// - Returns: `[RDSClientTypes.DBParameterGroup]` extension PaginatorSequence where Input == DescribeDBParameterGroupsInput, Output == DescribeDBParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBParameterGroupsPaginated` + /// to access the nested member `[RDSClientTypes.DBParameterGroup]` + /// - Returns: `[RDSClientTypes.DBParameterGroup]` public func dbParameterGroups() async throws -> [RDSClientTypes.DBParameterGroup] { return try await self.asyncCompactMap { item in item.dbParameterGroups } } } - -/// Paginate over `[DescribeDBParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParametersOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBParametersOutputResponse` public func describeDBParametersPaginated(input: DescribeDBParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBParametersInput.marker, outputKey: \DescribeDBParametersOutputResponse.marker, paginationFunction: self.describeDBParameters(input:)) } @@ -476,24 +462,23 @@ extension DescribeDBParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBParametersPaginated` -/// to access the nested member `[RDSClientTypes.Parameter]` -/// - Returns: `[RDSClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDBParametersInput, Output == DescribeDBParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBParametersPaginated` + /// to access the nested member `[RDSClientTypes.Parameter]` + /// - Returns: `[RDSClientTypes.Parameter]` public func parameters() async throws -> [RDSClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeDBProxiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBProxiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxiesOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBProxiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBProxiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxiesOutputResponse` public func describeDBProxiesPaginated(input: DescribeDBProxiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBProxiesInput.marker, outputKey: \DescribeDBProxiesOutputResponse.marker, paginationFunction: self.describeDBProxies(input:)) } @@ -509,24 +494,23 @@ extension DescribeDBProxiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBProxiesPaginated` -/// to access the nested member `[RDSClientTypes.DBProxy]` -/// - Returns: `[RDSClientTypes.DBProxy]` extension PaginatorSequence where Input == DescribeDBProxiesInput, Output == DescribeDBProxiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBProxiesPaginated` + /// to access the nested member `[RDSClientTypes.DBProxy]` + /// - Returns: `[RDSClientTypes.DBProxy]` public func dbProxies() async throws -> [RDSClientTypes.DBProxy] { return try await self.asyncCompactMap { item in item.dbProxies } } } - -/// Paginate over `[DescribeDBProxyEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBProxyEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyEndpointsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBProxyEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBProxyEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyEndpointsOutputResponse` public func describeDBProxyEndpointsPaginated(input: DescribeDBProxyEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBProxyEndpointsInput.marker, outputKey: \DescribeDBProxyEndpointsOutputResponse.marker, paginationFunction: self.describeDBProxyEndpoints(input:)) } @@ -543,24 +527,23 @@ extension DescribeDBProxyEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBProxyEndpointsPaginated` -/// to access the nested member `[RDSClientTypes.DBProxyEndpoint]` -/// - Returns: `[RDSClientTypes.DBProxyEndpoint]` extension PaginatorSequence where Input == DescribeDBProxyEndpointsInput, Output == DescribeDBProxyEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBProxyEndpointsPaginated` + /// to access the nested member `[RDSClientTypes.DBProxyEndpoint]` + /// - Returns: `[RDSClientTypes.DBProxyEndpoint]` public func dbProxyEndpoints() async throws -> [RDSClientTypes.DBProxyEndpoint] { return try await self.asyncCompactMap { item in item.dbProxyEndpoints } } } - -/// Paginate over `[DescribeDBProxyTargetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBProxyTargetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyTargetGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBProxyTargetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBProxyTargetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyTargetGroupsOutputResponse` public func describeDBProxyTargetGroupsPaginated(input: DescribeDBProxyTargetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBProxyTargetGroupsInput.marker, outputKey: \DescribeDBProxyTargetGroupsOutputResponse.marker, paginationFunction: self.describeDBProxyTargetGroups(input:)) } @@ -577,24 +560,23 @@ extension DescribeDBProxyTargetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBProxyTargetGroupsPaginated` -/// to access the nested member `[RDSClientTypes.DBProxyTargetGroup]` -/// - Returns: `[RDSClientTypes.DBProxyTargetGroup]` extension PaginatorSequence where Input == DescribeDBProxyTargetGroupsInput, Output == DescribeDBProxyTargetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBProxyTargetGroupsPaginated` + /// to access the nested member `[RDSClientTypes.DBProxyTargetGroup]` + /// - Returns: `[RDSClientTypes.DBProxyTargetGroup]` public func targetGroups() async throws -> [RDSClientTypes.DBProxyTargetGroup] { return try await self.asyncCompactMap { item in item.targetGroups } } } - -/// Paginate over `[DescribeDBProxyTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBProxyTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyTargetsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBProxyTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBProxyTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBProxyTargetsOutputResponse` public func describeDBProxyTargetsPaginated(input: DescribeDBProxyTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBProxyTargetsInput.marker, outputKey: \DescribeDBProxyTargetsOutputResponse.marker, paginationFunction: self.describeDBProxyTargets(input:)) } @@ -611,24 +593,23 @@ extension DescribeDBProxyTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBProxyTargetsPaginated` -/// to access the nested member `[RDSClientTypes.DBProxyTarget]` -/// - Returns: `[RDSClientTypes.DBProxyTarget]` extension PaginatorSequence where Input == DescribeDBProxyTargetsInput, Output == DescribeDBProxyTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBProxyTargetsPaginated` + /// to access the nested member `[RDSClientTypes.DBProxyTarget]` + /// - Returns: `[RDSClientTypes.DBProxyTarget]` public func targets() async throws -> [RDSClientTypes.DBProxyTarget] { return try await self.asyncCompactMap { item in item.targets } } } - -/// Paginate over `[DescribeDBSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSecurityGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSecurityGroupsOutputResponse` public func describeDBSecurityGroupsPaginated(input: DescribeDBSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBSecurityGroupsInput.marker, outputKey: \DescribeDBSecurityGroupsOutputResponse.marker, paginationFunction: self.describeDBSecurityGroups(input:)) } @@ -644,24 +625,23 @@ extension DescribeDBSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBSecurityGroupsPaginated` -/// to access the nested member `[RDSClientTypes.DBSecurityGroup]` -/// - Returns: `[RDSClientTypes.DBSecurityGroup]` extension PaginatorSequence where Input == DescribeDBSecurityGroupsInput, Output == DescribeDBSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBSecurityGroupsPaginated` + /// to access the nested member `[RDSClientTypes.DBSecurityGroup]` + /// - Returns: `[RDSClientTypes.DBSecurityGroup]` public func dbSecurityGroups() async throws -> [RDSClientTypes.DBSecurityGroup] { return try await self.asyncCompactMap { item in item.dbSecurityGroups } } } - -/// Paginate over `[DescribeDBSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSnapshotsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSnapshotsOutputResponse` public func describeDBSnapshotsPaginated(input: DescribeDBSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBSnapshotsInput.marker, outputKey: \DescribeDBSnapshotsOutputResponse.marker, paginationFunction: self.describeDBSnapshots(input:)) } @@ -682,24 +662,23 @@ extension DescribeDBSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBSnapshotsPaginated` -/// to access the nested member `[RDSClientTypes.DBSnapshot]` -/// - Returns: `[RDSClientTypes.DBSnapshot]` extension PaginatorSequence where Input == DescribeDBSnapshotsInput, Output == DescribeDBSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBSnapshotsPaginated` + /// to access the nested member `[RDSClientTypes.DBSnapshot]` + /// - Returns: `[RDSClientTypes.DBSnapshot]` public func dbSnapshots() async throws -> [RDSClientTypes.DBSnapshot] { return try await self.asyncCompactMap { item in item.dbSnapshots } } } - -/// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeDBSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDBSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDBSubnetGroupsOutputResponse` public func describeDBSubnetGroupsPaginated(input: DescribeDBSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDBSubnetGroupsInput.marker, outputKey: \DescribeDBSubnetGroupsOutputResponse.marker, paginationFunction: self.describeDBSubnetGroups(input:)) } @@ -715,24 +694,23 @@ extension DescribeDBSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` -/// to access the nested member `[RDSClientTypes.DBSubnetGroup]` -/// - Returns: `[RDSClientTypes.DBSubnetGroup]` extension PaginatorSequence where Input == DescribeDBSubnetGroupsInput, Output == DescribeDBSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDBSubnetGroupsPaginated` + /// to access the nested member `[RDSClientTypes.DBSubnetGroup]` + /// - Returns: `[RDSClientTypes.DBSubnetGroup]` public func dbSubnetGroups() async throws -> [RDSClientTypes.DBSubnetGroup] { return try await self.asyncCompactMap { item in item.dbSubnetGroups } } } - -/// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` extension RDSClient { + /// Paginate over `[DescribeEngineDefaultParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEngineDefaultParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEngineDefaultParametersOutputResponse` public func describeEngineDefaultParametersPaginated(input: DescribeEngineDefaultParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEngineDefaultParametersInput.marker, outputKey: \DescribeEngineDefaultParametersOutputResponse.engineDefaults?.marker, paginationFunction: self.describeEngineDefaultParameters(input:)) } @@ -748,24 +726,23 @@ extension DescribeEngineDefaultParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` -/// to access the nested member `[RDSClientTypes.Parameter]` -/// - Returns: `[RDSClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeEngineDefaultParametersInput, Output == DescribeEngineDefaultParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEngineDefaultParametersPaginated` + /// to access the nested member `[RDSClientTypes.Parameter]` + /// - Returns: `[RDSClientTypes.Parameter]` public func parameters() async throws -> [RDSClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.engineDefaults?.parameters } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -786,24 +763,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[RDSClientTypes.Event]` -/// - Returns: `[RDSClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[RDSClientTypes.Event]` + /// - Returns: `[RDSClientTypes.Event]` public func events() async throws -> [RDSClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` public func describeEventSubscriptionsPaginated(input: DescribeEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventSubscriptionsInput.marker, outputKey: \DescribeEventSubscriptionsOutputResponse.marker, paginationFunction: self.describeEventSubscriptions(input:)) } @@ -819,24 +795,23 @@ extension DescribeEventSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` -/// to access the nested member `[RDSClientTypes.EventSubscription]` -/// - Returns: `[RDSClientTypes.EventSubscription]` extension PaginatorSequence where Input == DescribeEventSubscriptionsInput, Output == DescribeEventSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` + /// to access the nested member `[RDSClientTypes.EventSubscription]` + /// - Returns: `[RDSClientTypes.EventSubscription]` public func eventSubscriptionsList() async throws -> [RDSClientTypes.EventSubscription] { return try await self.asyncCompactMap { item in item.eventSubscriptionsList } } } - -/// Paginate over `[DescribeExportTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeExportTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeExportTasksOutputResponse` extension RDSClient { + /// Paginate over `[DescribeExportTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeExportTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeExportTasksOutputResponse` public func describeExportTasksPaginated(input: DescribeExportTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeExportTasksInput.marker, outputKey: \DescribeExportTasksOutputResponse.marker, paginationFunction: self.describeExportTasks(input:)) } @@ -854,24 +829,23 @@ extension DescribeExportTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeExportTasksPaginated` -/// to access the nested member `[RDSClientTypes.ExportTask]` -/// - Returns: `[RDSClientTypes.ExportTask]` extension PaginatorSequence where Input == DescribeExportTasksInput, Output == DescribeExportTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeExportTasksPaginated` + /// to access the nested member `[RDSClientTypes.ExportTask]` + /// - Returns: `[RDSClientTypes.ExportTask]` public func exportTasks() async throws -> [RDSClientTypes.ExportTask] { return try await self.asyncCompactMap { item in item.exportTasks } } } - -/// Paginate over `[DescribeGlobalClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeGlobalClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` extension RDSClient { + /// Paginate over `[DescribeGlobalClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeGlobalClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeGlobalClustersOutputResponse` public func describeGlobalClustersPaginated(input: DescribeGlobalClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeGlobalClustersInput.marker, outputKey: \DescribeGlobalClustersOutputResponse.marker, paginationFunction: self.describeGlobalClusters(input:)) } @@ -887,24 +861,23 @@ extension DescribeGlobalClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` -/// to access the nested member `[RDSClientTypes.GlobalCluster]` -/// - Returns: `[RDSClientTypes.GlobalCluster]` extension PaginatorSequence where Input == DescribeGlobalClustersInput, Output == DescribeGlobalClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeGlobalClustersPaginated` + /// to access the nested member `[RDSClientTypes.GlobalCluster]` + /// - Returns: `[RDSClientTypes.GlobalCluster]` public func globalClusters() async throws -> [RDSClientTypes.GlobalCluster] { return try await self.asyncCompactMap { item in item.globalClusters } } } - -/// Paginate over `[DescribeOptionGroupOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOptionGroupOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOptionGroupOptionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeOptionGroupOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOptionGroupOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOptionGroupOptionsOutputResponse` public func describeOptionGroupOptionsPaginated(input: DescribeOptionGroupOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOptionGroupOptionsInput.marker, outputKey: \DescribeOptionGroupOptionsOutputResponse.marker, paginationFunction: self.describeOptionGroupOptions(input:)) } @@ -921,24 +894,23 @@ extension DescribeOptionGroupOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOptionGroupOptionsPaginated` -/// to access the nested member `[RDSClientTypes.OptionGroupOption]` -/// - Returns: `[RDSClientTypes.OptionGroupOption]` extension PaginatorSequence where Input == DescribeOptionGroupOptionsInput, Output == DescribeOptionGroupOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOptionGroupOptionsPaginated` + /// to access the nested member `[RDSClientTypes.OptionGroupOption]` + /// - Returns: `[RDSClientTypes.OptionGroupOption]` public func optionGroupOptions() async throws -> [RDSClientTypes.OptionGroupOption] { return try await self.asyncCompactMap { item in item.optionGroupOptions } } } - -/// Paginate over `[DescribeOptionGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOptionGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOptionGroupsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeOptionGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOptionGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOptionGroupsOutputResponse` public func describeOptionGroupsPaginated(input: DescribeOptionGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOptionGroupsInput.marker, outputKey: \DescribeOptionGroupsOutputResponse.marker, paginationFunction: self.describeOptionGroups(input:)) } @@ -956,24 +928,23 @@ extension DescribeOptionGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOptionGroupsPaginated` -/// to access the nested member `[RDSClientTypes.OptionGroup]` -/// - Returns: `[RDSClientTypes.OptionGroup]` extension PaginatorSequence where Input == DescribeOptionGroupsInput, Output == DescribeOptionGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOptionGroupsPaginated` + /// to access the nested member `[RDSClientTypes.OptionGroup]` + /// - Returns: `[RDSClientTypes.OptionGroup]` public func optionGroupsList() async throws -> [RDSClientTypes.OptionGroup] { return try await self.asyncCompactMap { item in item.optionGroupsList } } } - -/// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeOrderableDBInstanceOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrderableDBInstanceOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableDBInstanceOptionsOutputResponse` public func describeOrderableDBInstanceOptionsPaginated(input: DescribeOrderableDBInstanceOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrderableDBInstanceOptionsInput.marker, outputKey: \DescribeOrderableDBInstanceOptionsOutputResponse.marker, paginationFunction: self.describeOrderableDBInstanceOptions(input:)) } @@ -994,24 +965,23 @@ extension DescribeOrderableDBInstanceOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` -/// to access the nested member `[RDSClientTypes.OrderableDBInstanceOption]` -/// - Returns: `[RDSClientTypes.OrderableDBInstanceOption]` extension PaginatorSequence where Input == DescribeOrderableDBInstanceOptionsInput, Output == DescribeOrderableDBInstanceOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrderableDBInstanceOptionsPaginated` + /// to access the nested member `[RDSClientTypes.OrderableDBInstanceOption]` + /// - Returns: `[RDSClientTypes.OrderableDBInstanceOption]` public func orderableDBInstanceOptions() async throws -> [RDSClientTypes.OrderableDBInstanceOption] { return try await self.asyncCompactMap { item in item.orderableDBInstanceOptions } } } - -/// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribePendingMaintenanceActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePendingMaintenanceActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePendingMaintenanceActionsOutputResponse` public func describePendingMaintenanceActionsPaginated(input: DescribePendingMaintenanceActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePendingMaintenanceActionsInput.marker, outputKey: \DescribePendingMaintenanceActionsOutputResponse.marker, paginationFunction: self.describePendingMaintenanceActions(input:)) } @@ -1027,24 +997,23 @@ extension DescribePendingMaintenanceActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` -/// to access the nested member `[RDSClientTypes.ResourcePendingMaintenanceActions]` -/// - Returns: `[RDSClientTypes.ResourcePendingMaintenanceActions]` extension PaginatorSequence where Input == DescribePendingMaintenanceActionsInput, Output == DescribePendingMaintenanceActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePendingMaintenanceActionsPaginated` + /// to access the nested member `[RDSClientTypes.ResourcePendingMaintenanceActions]` + /// - Returns: `[RDSClientTypes.ResourcePendingMaintenanceActions]` public func pendingMaintenanceActions() async throws -> [RDSClientTypes.ResourcePendingMaintenanceActions] { return try await self.asyncCompactMap { item in item.pendingMaintenanceActions } } } - -/// Paginate over `[DescribeReservedDBInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedDBInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedDBInstancesOutputResponse` extension RDSClient { + /// Paginate over `[DescribeReservedDBInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedDBInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedDBInstancesOutputResponse` public func describeReservedDBInstancesPaginated(input: DescribeReservedDBInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedDBInstancesInput.marker, outputKey: \DescribeReservedDBInstancesOutputResponse.marker, paginationFunction: self.describeReservedDBInstances(input:)) } @@ -1067,24 +1036,23 @@ extension DescribeReservedDBInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedDBInstancesPaginated` -/// to access the nested member `[RDSClientTypes.ReservedDBInstance]` -/// - Returns: `[RDSClientTypes.ReservedDBInstance]` extension PaginatorSequence where Input == DescribeReservedDBInstancesInput, Output == DescribeReservedDBInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedDBInstancesPaginated` + /// to access the nested member `[RDSClientTypes.ReservedDBInstance]` + /// - Returns: `[RDSClientTypes.ReservedDBInstance]` public func reservedDBInstances() async throws -> [RDSClientTypes.ReservedDBInstance] { return try await self.asyncCompactMap { item in item.reservedDBInstances } } } - -/// Paginate over `[DescribeReservedDBInstancesOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedDBInstancesOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedDBInstancesOfferingsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeReservedDBInstancesOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedDBInstancesOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedDBInstancesOfferingsOutputResponse` public func describeReservedDBInstancesOfferingsPaginated(input: DescribeReservedDBInstancesOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedDBInstancesOfferingsInput.marker, outputKey: \DescribeReservedDBInstancesOfferingsOutputResponse.marker, paginationFunction: self.describeReservedDBInstancesOfferings(input:)) } @@ -1105,24 +1073,23 @@ extension DescribeReservedDBInstancesOfferingsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedDBInstancesOfferingsPaginated` -/// to access the nested member `[RDSClientTypes.ReservedDBInstancesOffering]` -/// - Returns: `[RDSClientTypes.ReservedDBInstancesOffering]` extension PaginatorSequence where Input == DescribeReservedDBInstancesOfferingsInput, Output == DescribeReservedDBInstancesOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedDBInstancesOfferingsPaginated` + /// to access the nested member `[RDSClientTypes.ReservedDBInstancesOffering]` + /// - Returns: `[RDSClientTypes.ReservedDBInstancesOffering]` public func reservedDBInstancesOfferings() async throws -> [RDSClientTypes.ReservedDBInstancesOffering] { return try await self.asyncCompactMap { item in item.reservedDBInstancesOfferings } } } - -/// Paginate over `[DescribeSourceRegionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSourceRegionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSourceRegionsOutputResponse` extension RDSClient { + /// Paginate over `[DescribeSourceRegionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSourceRegionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSourceRegionsOutputResponse` public func describeSourceRegionsPaginated(input: DescribeSourceRegionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSourceRegionsInput.marker, outputKey: \DescribeSourceRegionsOutputResponse.marker, paginationFunction: self.describeSourceRegions(input:)) } @@ -1138,24 +1105,23 @@ extension DescribeSourceRegionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSourceRegionsPaginated` -/// to access the nested member `[RDSClientTypes.SourceRegion]` -/// - Returns: `[RDSClientTypes.SourceRegion]` extension PaginatorSequence where Input == DescribeSourceRegionsInput, Output == DescribeSourceRegionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSourceRegionsPaginated` + /// to access the nested member `[RDSClientTypes.SourceRegion]` + /// - Returns: `[RDSClientTypes.SourceRegion]` public func sourceRegions() async throws -> [RDSClientTypes.SourceRegion] { return try await self.asyncCompactMap { item in item.sourceRegions } } } - -/// Paginate over `[DownloadDBLogFilePortionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DownloadDBLogFilePortionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DownloadDBLogFilePortionOutputResponse` extension RDSClient { + /// Paginate over `[DownloadDBLogFilePortionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DownloadDBLogFilePortionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DownloadDBLogFilePortionOutputResponse` public func downloadDBLogFilePortionPaginated(input: DownloadDBLogFilePortionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DownloadDBLogFilePortionInput.marker, outputKey: \DownloadDBLogFilePortionOutputResponse.marker, paginationFunction: self.downloadDBLogFilePortion(input:)) } diff --git a/Sources/Services/AWSRDS/RDSClient.swift b/Sources/Services/AWSRDS/RDSClient.swift index 78ca11a3e16..c29e92d974f 100644 --- a/Sources/Services/AWSRDS/RDSClient.swift +++ b/Sources/Services/AWSRDS/RDSClient.swift @@ -2124,7 +2124,7 @@ extension RDSClient: RDSClientProtocol { return result } - /// Lists the set of CA certificates provided by Amazon RDS for this Amazon Web Services account. + /// Lists the set of CA certificates provided by Amazon RDS for this Amazon Web Services account. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public func describeCertificates(input: DescribeCertificatesInput) async throws -> DescribeCertificatesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -5175,7 +5175,7 @@ extension RDSClient: RDSClientProtocol { return result } - /// Starts a database activity stream to monitor activity on the database. For more information, see [Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide. + /// Starts a database activity stream to monitor activity on the database. For more information, see [ Monitoring Amazon Aurora with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide or [ Monitoring Amazon RDS with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) in the Amazon RDS User Guide. public func startActivityStream(input: StartActivityStreamInput) async throws -> StartActivityStreamOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -5365,7 +5365,7 @@ extension RDSClient: RDSClientProtocol { return result } - /// Stops a database activity stream that was started using the Amazon Web Services console, the start-activity-stream CLI command, or the StartActivityStream action. For more information, see [Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide. + /// Stops a database activity stream that was started using the Amazon Web Services console, the start-activity-stream CLI command, or the StartActivityStream action. For more information, see [ Monitoring Amazon Aurora with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide or [ Monitoring Amazon RDS with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) in the Amazon RDS User Guide. public func stopActivityStream(input: StopActivityStreamInput) async throws -> StopActivityStreamOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSRDS/RDSClientProtocol.swift b/Sources/Services/AWSRDS/RDSClientProtocol.swift index 36dc03fa5f1..890de9513bd 100644 --- a/Sources/Services/AWSRDS/RDSClientProtocol.swift +++ b/Sources/Services/AWSRDS/RDSClientProtocol.swift @@ -143,7 +143,7 @@ public protocol RDSClientProtocol { func describeAccountAttributes(input: DescribeAccountAttributesInput) async throws -> DescribeAccountAttributesOutputResponse /// Returns information about blue/green deployments. For more information, see [Using Amazon RDS Blue/Green Deployments for database updates](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html) in the Amazon RDS User Guide and [ Using Amazon RDS Blue/Green Deployments for database updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) in the Amazon Aurora User Guide. func describeBlueGreenDeployments(input: DescribeBlueGreenDeploymentsInput) async throws -> DescribeBlueGreenDeploymentsOutputResponse - /// Lists the set of CA certificates provided by Amazon RDS for this Amazon Web Services account. + /// Lists the set of CA certificates provided by Amazon RDS for this Amazon Web Services account. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. func describeCertificates(input: DescribeCertificatesInput) async throws -> DescribeCertificatesOutputResponse /// Returns information about backtracks for a DB cluster. For more information on Amazon Aurora, see [ What is Amazon Aurora?](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) in the Amazon Aurora User Guide. This action only applies to Aurora MySQL DB clusters. func describeDBClusterBacktracks(input: DescribeDBClusterBacktracksInput) async throws -> DescribeDBClusterBacktracksOutputResponse @@ -314,7 +314,7 @@ public protocol RDSClientProtocol { func restoreDBInstanceToPointInTime(input: RestoreDBInstanceToPointInTimeInput) async throws -> RestoreDBInstanceToPointInTimeOutputResponse /// Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC security groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId). EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see [Migrate from EC2-Classic to a VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html) in the Amazon EC2 User Guide, the blog [EC2-Classic Networking is Retiring – Here’s How to Prepare](http://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/), and [Moving a DB instance not in a VPC into a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Non-VPC2VPC.html) in the Amazon RDS User Guide. func revokeDBSecurityGroupIngress(input: RevokeDBSecurityGroupIngressInput) async throws -> RevokeDBSecurityGroupIngressOutputResponse - /// Starts a database activity stream to monitor activity on the database. For more information, see [Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide. + /// Starts a database activity stream to monitor activity on the database. For more information, see [ Monitoring Amazon Aurora with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide or [ Monitoring Amazon RDS with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) in the Amazon RDS User Guide. func startActivityStream(input: StartActivityStreamInput) async throws -> StartActivityStreamOutputResponse /// Starts an Amazon Aurora DB cluster that was stopped using the Amazon Web Services console, the stop-db-cluster CLI command, or the StopDBCluster action. For more information, see [ Stopping and Starting an Aurora Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) in the Amazon Aurora User Guide. This action only applies to Aurora DB clusters. func startDBCluster(input: StartDBClusterInput) async throws -> StartDBClusterOutputResponse @@ -324,7 +324,7 @@ public protocol RDSClientProtocol { func startDBInstanceAutomatedBackupsReplication(input: StartDBInstanceAutomatedBackupsReplicationInput) async throws -> StartDBInstanceAutomatedBackupsReplicationOutputResponse /// Starts an export of a snapshot to Amazon S3. The provided IAM role must have access to the S3 bucket. This command doesn't apply to RDS Custom. func startExportTask(input: StartExportTaskInput) async throws -> StartExportTaskOutputResponse - /// Stops a database activity stream that was started using the Amazon Web Services console, the start-activity-stream CLI command, or the StartActivityStream action. For more information, see [Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide. + /// Stops a database activity stream that was started using the Amazon Web Services console, the start-activity-stream CLI command, or the StartActivityStream action. For more information, see [ Monitoring Amazon Aurora with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/DBActivityStreams.html) in the Amazon Aurora User Guide or [ Monitoring Amazon RDS with Database Activity Streams](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.html) in the Amazon RDS User Guide. func stopActivityStream(input: StopActivityStreamInput) async throws -> StopActivityStreamOutputResponse /// Stops an Amazon Aurora DB cluster. When you stop a DB cluster, Aurora retains the DB cluster's metadata, including its endpoints and DB parameter groups. Aurora also retains the transaction logs so you can do a point-in-time restore if necessary. For more information, see [ Stopping and Starting an Aurora Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-cluster-stop-start.html) in the Amazon Aurora User Guide. This action only applies to Aurora DB clusters. func stopDBCluster(input: StopDBClusterInput) async throws -> StopDBClusterOutputResponse diff --git a/Sources/Services/AWSRDS/models/Models.swift b/Sources/Services/AWSRDS/models/Models.swift index ff37eb58e7a..b06e7f3dde7 100644 --- a/Sources/Services/AWSRDS/models/Models.swift +++ b/Sources/Services/AWSRDS/models/Models.swift @@ -2356,7 +2356,7 @@ extension RDSClientTypes.Certificate: Swift.Codable { } extension RDSClientTypes { - /// A CA certificate for an Amazon Web Services account. + /// A CA certificate for an Amazon Web Services account. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public struct Certificate: Swift.Equatable { /// The Amazon Resource Name (ARN) for the certificate. public var certificateArn: Swift.String? @@ -2399,6 +2399,51 @@ extension RDSClientTypes { } +extension RDSClientTypes.CertificateDetails: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case caIdentifier = "CAIdentifier" + case validTill = "ValidTill" + } + + public func encode(to encoder: Swift.Encoder) throws { + var container = encoder.container(keyedBy: ClientRuntime.Key.self) + if let caIdentifier = caIdentifier { + try container.encode(caIdentifier, forKey: ClientRuntime.Key("CAIdentifier")) + } + if let validTill = validTill { + try container.encodeTimestamp(validTill, format: .dateTime, forKey: ClientRuntime.Key("validTill")) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let caIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .caIdentifier) + caIdentifier = caIdentifierDecoded + let validTillDecoded = try containerValues.decodeTimestampIfPresent(.dateTime, forKey: .validTill) + validTill = validTillDecoded + } +} + +extension RDSClientTypes { + /// Returns the details of the DB instance’s server certificate. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public struct CertificateDetails: Swift.Equatable { + /// The CA identifier of the CA certificate used for the DB instance's server certificate. + public var caIdentifier: Swift.String? + /// The expiration date of the DB instance’s server certificate. + public var validTill: ClientRuntime.Date? + + public init ( + caIdentifier: Swift.String? = nil, + validTill: ClientRuntime.Date? = nil + ) + { + self.caIdentifier = caIdentifier + self.validTill = validTill + } + } + +} + extension CertificateNotFoundFault { public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { if let data = httpResponse.body.toBytes()?.getData(), @@ -4413,12 +4458,14 @@ extension CreateCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = output.kmsKeyId self.majorEngineVersion = output.majorEngineVersion self.status = output.status + self.supportedCACertificateIdentifiers = output.supportedCACertificateIdentifiers self.supportedCharacterSets = output.supportedCharacterSets self.supportedEngineModes = output.supportedEngineModes self.supportedFeatureNames = output.supportedFeatureNames self.supportedNcharCharacterSets = output.supportedNcharCharacterSets self.supportedTimezones = output.supportedTimezones self.supportsBabelfish = output.supportsBabelfish + self.supportsCertificateRotationWithoutRestart = output.supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = output.supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = output.supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = output.supportsParallelQuery @@ -4443,12 +4490,14 @@ extension CreateCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = nil self.majorEngineVersion = nil self.status = nil + self.supportedCACertificateIdentifiers = nil self.supportedCharacterSets = nil self.supportedEngineModes = nil self.supportedFeatureNames = nil self.supportedNcharCharacterSets = nil self.supportedTimezones = nil self.supportsBabelfish = false + self.supportsCertificateRotationWithoutRestart = nil self.supportsGlobalDatabases = false self.supportsLogExportsToCloudwatchLogs = false self.supportsParallelQuery = false @@ -4495,6 +4544,8 @@ public struct CreateCustomDBEngineVersionOutputResponse: Swift.Equatable { public var majorEngineVersion: Swift.String? /// The status of the DB engine version, either available or deprecated. public var status: Swift.String? + /// A list of the supported CA certificate identifiers. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public var supportedCACertificateIdentifiers: [Swift.String]? /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation. public var supportedCharacterSets: [RDSClientTypes.CharacterSet]? /// A list of the supported DB engine modes. @@ -4507,6 +4558,8 @@ public struct CreateCustomDBEngineVersionOutputResponse: Swift.Equatable { public var supportedTimezones: [RDSClientTypes.Timezone]? /// A value that indicates whether the engine version supports Babelfish for Aurora PostgreSQL. public var supportsBabelfish: Swift.Bool + /// A value that indicates whether the engine version supports rotating the server certificate without rebooting the DB instance. + public var supportsCertificateRotationWithoutRestart: Swift.Bool? /// A value that indicates whether you can use Aurora global databases with a specific DB engine version. public var supportsGlobalDatabases: Swift.Bool /// A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. @@ -4538,12 +4591,14 @@ public struct CreateCustomDBEngineVersionOutputResponse: Swift.Equatable { kmsKeyId: Swift.String? = nil, majorEngineVersion: Swift.String? = nil, status: Swift.String? = nil, + supportedCACertificateIdentifiers: [Swift.String]? = nil, supportedCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedEngineModes: [Swift.String]? = nil, supportedFeatureNames: [Swift.String]? = nil, supportedNcharCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedTimezones: [RDSClientTypes.Timezone]? = nil, supportsBabelfish: Swift.Bool = false, + supportsCertificateRotationWithoutRestart: Swift.Bool? = nil, supportsGlobalDatabases: Swift.Bool = false, supportsLogExportsToCloudwatchLogs: Swift.Bool = false, supportsParallelQuery: Swift.Bool = false, @@ -4569,12 +4624,14 @@ public struct CreateCustomDBEngineVersionOutputResponse: Swift.Equatable { self.kmsKeyId = kmsKeyId self.majorEngineVersion = majorEngineVersion self.status = status + self.supportedCACertificateIdentifiers = supportedCACertificateIdentifiers self.supportedCharacterSets = supportedCharacterSets self.supportedEngineModes = supportedEngineModes self.supportedFeatureNames = supportedFeatureNames self.supportedNcharCharacterSets = supportedNcharCharacterSets self.supportedTimezones = supportedTimezones self.supportsBabelfish = supportsBabelfish + self.supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = supportsParallelQuery @@ -4614,6 +4671,8 @@ struct CreateCustomDBEngineVersionOutputResponseBody: Swift.Equatable { let tagList: [RDSClientTypes.Tag]? let supportsBabelfish: Swift.Bool let customDBEngineVersionManifest: Swift.String? + let supportsCertificateRotationWithoutRestart: Swift.Bool? + let supportedCACertificateIdentifiers: [Swift.String]? } extension CreateCustomDBEngineVersionOutputResponseBody: Swift.Decodable { @@ -4635,12 +4694,14 @@ extension CreateCustomDBEngineVersionOutputResponseBody: Swift.Decodable { case kmsKeyId = "KMSKeyId" case majorEngineVersion = "MajorEngineVersion" case status = "Status" + case supportedCACertificateIdentifiers = "SupportedCACertificateIdentifiers" case supportedCharacterSets = "SupportedCharacterSets" case supportedEngineModes = "SupportedEngineModes" case supportedFeatureNames = "SupportedFeatureNames" case supportedNcharCharacterSets = "SupportedNcharCharacterSets" case supportedTimezones = "SupportedTimezones" case supportsBabelfish = "SupportsBabelfish" + case supportsCertificateRotationWithoutRestart = "SupportsCertificateRotationWithoutRestart" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsLogExportsToCloudwatchLogs = "SupportsLogExportsToCloudwatchLogs" case supportsParallelQuery = "SupportsParallelQuery" @@ -4846,6 +4907,27 @@ extension CreateCustomDBEngineVersionOutputResponseBody: Swift.Decodable { supportsBabelfish = supportsBabelfishDecoded let customDBEngineVersionManifestDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .customDBEngineVersionManifest) customDBEngineVersionManifest = customDBEngineVersionManifestDecoded + let supportsCertificateRotationWithoutRestartDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .supportsCertificateRotationWithoutRestart) + supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestartDecoded + if containerValues.contains(.supportedCACertificateIdentifiers) { + struct KeyVal0{struct member{}} + let supportedCACertificateIdentifiersWrappedContainer = containerValues.nestedContainerNonThrowable(keyedBy: CollectionMemberCodingKey.CodingKeys.self, forKey: .supportedCACertificateIdentifiers) + if let supportedCACertificateIdentifiersWrappedContainer = supportedCACertificateIdentifiersWrappedContainer { + let supportedCACertificateIdentifiersContainer = try supportedCACertificateIdentifiersWrappedContainer.decodeIfPresent([Swift.String].self, forKey: .member) + var supportedCACertificateIdentifiersBuffer:[Swift.String]? = nil + if let supportedCACertificateIdentifiersContainer = supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer = [Swift.String]() + for stringContainer0 in supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer?.append(stringContainer0) + } + } + supportedCACertificateIdentifiers = supportedCACertificateIdentifiersBuffer + } else { + supportedCACertificateIdentifiers = [] + } + } else { + supportedCACertificateIdentifiers = nil + } } } @@ -6542,6 +6624,9 @@ extension CreateDBInstanceInput: Swift.Encodable { if let backupTarget = backupTarget { try container.encode(backupTarget, forKey: ClientRuntime.Key("BackupTarget")) } + if let caCertificateIdentifier = caCertificateIdentifier { + try container.encode(caCertificateIdentifier, forKey: ClientRuntime.Key("CACertificateIdentifier")) + } if let characterSetName = characterSetName { try container.encode(characterSetName, forKey: ClientRuntime.Key("CharacterSetName")) } @@ -6830,6 +6915,8 @@ public struct CreateDBInstanceInput: Swift.Equatable { public var backupRetentionPeriod: Swift.Int? /// Specifies where automated backups and manual snapshots are stored. Possible values are outposts (Amazon Web Services Outposts) and region (Amazon Web Services Region). The default is region. For more information, see [Working with Amazon RDS on Amazon Web Services Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) in the Amazon RDS User Guide. public var backupTarget: Swift.String? + /// Specifies the CA certificate identifier to use for the DB instance’s server certificate. This setting doesn't apply to RDS Custom. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public var caCertificateIdentifier: Swift.String? /// For supported engines, this value indicates that the DB instance should be associated with the specified CharacterSet. This setting doesn't apply to RDS Custom. However, if you need to change the character set, you can change it on the database itself. Amazon Aurora Not applicable. The character set is managed by the DB cluster. For more information, see CreateDBCluster. public var characterSetName: Swift.String? /// A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. Amazon Aurora Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. @@ -7108,6 +7195,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { availabilityZone: Swift.String? = nil, backupRetentionPeriod: Swift.Int? = nil, backupTarget: Swift.String? = nil, + caCertificateIdentifier: Swift.String? = nil, characterSetName: Swift.String? = nil, copyTagsToSnapshot: Swift.Bool? = nil, customIamInstanceProfile: Swift.String? = nil, @@ -7164,6 +7252,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { self.availabilityZone = availabilityZone self.backupRetentionPeriod = backupRetentionPeriod self.backupTarget = backupTarget + self.caCertificateIdentifier = caCertificateIdentifier self.characterSetName = characterSetName self.copyTagsToSnapshot = copyTagsToSnapshot self.customIamInstanceProfile = customIamInstanceProfile @@ -7271,6 +7360,7 @@ struct CreateDBInstanceInputBody: Swift.Equatable { let storageThroughput: Swift.Int? let manageMasterUserPassword: Swift.Bool? let masterUserSecretKmsKeyId: Swift.String? + let caCertificateIdentifier: Swift.String? } extension CreateDBInstanceInputBody: Swift.Decodable { @@ -7280,6 +7370,7 @@ extension CreateDBInstanceInputBody: Swift.Decodable { case availabilityZone = "AvailabilityZone" case backupRetentionPeriod = "BackupRetentionPeriod" case backupTarget = "BackupTarget" + case caCertificateIdentifier = "CACertificateIdentifier" case characterSetName = "CharacterSetName" case copyTagsToSnapshot = "CopyTagsToSnapshot" case customIamInstanceProfile = "CustomIamInstanceProfile" @@ -7526,6 +7617,8 @@ extension CreateDBInstanceInputBody: Swift.Decodable { manageMasterUserPassword = manageMasterUserPasswordDecoded let masterUserSecretKmsKeyIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .masterUserSecretKmsKeyId) masterUserSecretKmsKeyId = masterUserSecretKmsKeyIdDecoded + let caCertificateIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .caCertificateIdentifier) + caCertificateIdentifier = caCertificateIdentifierDecoded } } @@ -7541,6 +7634,7 @@ extension CreateDBInstanceOutputError { switch errorType { case "AuthorizationNotFound" : self = .authorizationNotFoundFault(try AuthorizationNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "BackupPolicyNotFoundFault" : self = .backupPolicyNotFoundFault(try BackupPolicyNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "CertificateNotFound" : self = .certificateNotFoundFault(try CertificateNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "DBClusterNotFoundFault" : self = .dBClusterNotFoundFault(try DBClusterNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "DBInstanceAlreadyExists" : self = .dBInstanceAlreadyExistsFault(try DBInstanceAlreadyExistsFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) case "DBParameterGroupNotFound" : self = .dBParameterGroupNotFoundFault(try DBParameterGroupNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) @@ -7567,6 +7661,7 @@ extension CreateDBInstanceOutputError { public enum CreateDBInstanceOutputError: Swift.Error, Swift.Equatable { case authorizationNotFoundFault(AuthorizationNotFoundFault) case backupPolicyNotFoundFault(BackupPolicyNotFoundFault) + case certificateNotFoundFault(CertificateNotFoundFault) case dBClusterNotFoundFault(DBClusterNotFoundFault) case dBInstanceAlreadyExistsFault(DBInstanceAlreadyExistsFault) case dBParameterGroupNotFoundFault(DBParameterGroupNotFoundFault) @@ -7633,6 +7728,9 @@ extension CreateDBInstanceOutputResponseBody: Swift.Decodable { extension CreateDBInstanceReadReplicaInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var container = encoder.container(keyedBy: ClientRuntime.Key.self) + if let allocatedStorage = allocatedStorage { + try container.encode(allocatedStorage, forKey: ClientRuntime.Key("AllocatedStorage")) + } if let autoMinorVersionUpgrade = autoMinorVersionUpgrade { try container.encode(autoMinorVersionUpgrade, forKey: ClientRuntime.Key("AutoMinorVersionUpgrade")) } @@ -7789,6 +7887,8 @@ extension CreateDBInstanceReadReplicaInput: ClientRuntime.URLPathProvider { } public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { + /// The amount of storage (in gibibytes) to allocate initially for the read replica. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your read replica so that the create operation can succeed. You can also allocate additional memory for future growth. + public var allocatedStorage: Swift.Int? /// A value that indicates whether minor engine upgrades are applied automatically to the read replica during the maintenance window. This setting doesn't apply to RDS Custom. Default: Inherits from the source DB instance public var autoMinorVersionUpgrade: Swift.Bool? /// The Availability Zone (AZ) where the read replica will be created. Default: A random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region. Example: us-east-1d @@ -7950,6 +8050,7 @@ public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { public var vpcSecurityGroupIds: [Swift.String]? public init ( + allocatedStorage: Swift.Int? = nil, autoMinorVersionUpgrade: Swift.Bool? = nil, availabilityZone: Swift.String? = nil, copyTagsToSnapshot: Swift.Bool? = nil, @@ -7988,6 +8089,7 @@ public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { vpcSecurityGroupIds: [Swift.String]? = nil ) { + self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.copyTagsToSnapshot = copyTagsToSnapshot @@ -8064,10 +8166,12 @@ struct CreateDBInstanceReadReplicaInputBody: Swift.Equatable { let networkType: Swift.String? let storageThroughput: Swift.Int? let enableCustomerOwnedIp: Swift.Bool? + let allocatedStorage: Swift.Int? } extension CreateDBInstanceReadReplicaInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case allocatedStorage = "AllocatedStorage" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case copyTagsToSnapshot = "CopyTagsToSnapshot" @@ -8248,6 +8352,8 @@ extension CreateDBInstanceReadReplicaInputBody: Swift.Decodable { storageThroughput = storageThroughputDecoded let enableCustomerOwnedIpDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .enableCustomerOwnedIp) enableCustomerOwnedIp = enableCustomerOwnedIpDecoded + let allocatedStorageDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .allocatedStorage) + allocatedStorage = allocatedStorageDecoded } } @@ -13339,12 +13445,14 @@ extension RDSClientTypes.DBEngineVersion: Swift.Codable { case kmsKeyId = "KMSKeyId" case majorEngineVersion = "MajorEngineVersion" case status = "Status" + case supportedCACertificateIdentifiers = "SupportedCACertificateIdentifiers" case supportedCharacterSets = "SupportedCharacterSets" case supportedEngineModes = "SupportedEngineModes" case supportedFeatureNames = "SupportedFeatureNames" case supportedNcharCharacterSets = "SupportedNcharCharacterSets" case supportedTimezones = "SupportedTimezones" case supportsBabelfish = "SupportsBabelfish" + case supportsCertificateRotationWithoutRestart = "SupportsCertificateRotationWithoutRestart" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsLogExportsToCloudwatchLogs = "SupportsLogExportsToCloudwatchLogs" case supportsParallelQuery = "SupportsParallelQuery" @@ -13415,6 +13523,18 @@ extension RDSClientTypes.DBEngineVersion: Swift.Codable { if let status = status { try container.encode(status, forKey: ClientRuntime.Key("Status")) } + if let supportedCACertificateIdentifiers = supportedCACertificateIdentifiers { + if !supportedCACertificateIdentifiers.isEmpty { + var supportedCACertificateIdentifiersContainer = container.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: ClientRuntime.Key("SupportedCACertificateIdentifiers")) + for (index0, string0) in supportedCACertificateIdentifiers.enumerated() { + try supportedCACertificateIdentifiersContainer.encode(string0, forKey: ClientRuntime.Key("member.\(index0.advanced(by: 1))")) + } + } + else { + var supportedCACertificateIdentifiersContainer = container.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: ClientRuntime.Key("SupportedCACertificateIdentifiers")) + try supportedCACertificateIdentifiersContainer.encode("", forKey: ClientRuntime.Key("")) + } + } if let supportedCharacterSets = supportedCharacterSets { if !supportedCharacterSets.isEmpty { var supportedCharacterSetsContainer = container.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: ClientRuntime.Key("SupportedCharacterSets")) @@ -13478,6 +13598,9 @@ extension RDSClientTypes.DBEngineVersion: Swift.Codable { if supportsBabelfish != false { try container.encode(supportsBabelfish, forKey: ClientRuntime.Key("SupportsBabelfish")) } + if let supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart { + try container.encode(supportsCertificateRotationWithoutRestart, forKey: ClientRuntime.Key("SupportsCertificateRotationWithoutRestart")) + } if supportsGlobalDatabases != false { try container.encode(supportsGlobalDatabases, forKey: ClientRuntime.Key("SupportsGlobalDatabases")) } @@ -13712,6 +13835,27 @@ extension RDSClientTypes.DBEngineVersion: Swift.Codable { supportsBabelfish = supportsBabelfishDecoded let customDBEngineVersionManifestDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .customDBEngineVersionManifest) customDBEngineVersionManifest = customDBEngineVersionManifestDecoded + let supportsCertificateRotationWithoutRestartDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .supportsCertificateRotationWithoutRestart) + supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestartDecoded + if containerValues.contains(.supportedCACertificateIdentifiers) { + struct KeyVal0{struct member{}} + let supportedCACertificateIdentifiersWrappedContainer = containerValues.nestedContainerNonThrowable(keyedBy: CollectionMemberCodingKey.CodingKeys.self, forKey: .supportedCACertificateIdentifiers) + if let supportedCACertificateIdentifiersWrappedContainer = supportedCACertificateIdentifiersWrappedContainer { + let supportedCACertificateIdentifiersContainer = try supportedCACertificateIdentifiersWrappedContainer.decodeIfPresent([Swift.String].self, forKey: .member) + var supportedCACertificateIdentifiersBuffer:[Swift.String]? = nil + if let supportedCACertificateIdentifiersContainer = supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer = [Swift.String]() + for stringContainer0 in supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer?.append(stringContainer0) + } + } + supportedCACertificateIdentifiers = supportedCACertificateIdentifiersBuffer + } else { + supportedCACertificateIdentifiers = [] + } + } else { + supportedCACertificateIdentifiers = nil + } } } @@ -13752,6 +13896,8 @@ extension RDSClientTypes { public var majorEngineVersion: Swift.String? /// The status of the DB engine version, either available or deprecated. public var status: Swift.String? + /// A list of the supported CA certificate identifiers. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public var supportedCACertificateIdentifiers: [Swift.String]? /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation. public var supportedCharacterSets: [RDSClientTypes.CharacterSet]? /// A list of the supported DB engine modes. @@ -13764,6 +13910,8 @@ extension RDSClientTypes { public var supportedTimezones: [RDSClientTypes.Timezone]? /// A value that indicates whether the engine version supports Babelfish for Aurora PostgreSQL. public var supportsBabelfish: Swift.Bool + /// A value that indicates whether the engine version supports rotating the server certificate without rebooting the DB instance. + public var supportsCertificateRotationWithoutRestart: Swift.Bool? /// A value that indicates whether you can use Aurora global databases with a specific DB engine version. public var supportsGlobalDatabases: Swift.Bool /// A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. @@ -13795,12 +13943,14 @@ extension RDSClientTypes { kmsKeyId: Swift.String? = nil, majorEngineVersion: Swift.String? = nil, status: Swift.String? = nil, + supportedCACertificateIdentifiers: [Swift.String]? = nil, supportedCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedEngineModes: [Swift.String]? = nil, supportedFeatureNames: [Swift.String]? = nil, supportedNcharCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedTimezones: [RDSClientTypes.Timezone]? = nil, supportsBabelfish: Swift.Bool = false, + supportsCertificateRotationWithoutRestart: Swift.Bool? = nil, supportsGlobalDatabases: Swift.Bool = false, supportsLogExportsToCloudwatchLogs: Swift.Bool = false, supportsParallelQuery: Swift.Bool = false, @@ -13826,12 +13976,14 @@ extension RDSClientTypes { self.kmsKeyId = kmsKeyId self.majorEngineVersion = majorEngineVersion self.status = status + self.supportedCACertificateIdentifiers = supportedCACertificateIdentifiers self.supportedCharacterSets = supportedCharacterSets self.supportedEngineModes = supportedEngineModes self.supportedFeatureNames = supportedFeatureNames self.supportedNcharCharacterSets = supportedNcharCharacterSets self.supportedTimezones = supportedTimezones self.supportsBabelfish = supportsBabelfish + self.supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = supportsParallelQuery @@ -13861,6 +14013,7 @@ extension RDSClientTypes.DBInstance: Swift.Codable { case backupRetentionPeriod = "BackupRetentionPeriod" case backupTarget = "BackupTarget" case caCertificateIdentifier = "CACertificateIdentifier" + case certificateDetails = "CertificateDetails" case characterSetName = "CharacterSetName" case copyTagsToSnapshot = "CopyTagsToSnapshot" case customIamInstanceProfile = "CustomIamInstanceProfile" @@ -13985,6 +14138,9 @@ extension RDSClientTypes.DBInstance: Swift.Codable { if let caCertificateIdentifier = caCertificateIdentifier { try container.encode(caCertificateIdentifier, forKey: ClientRuntime.Key("CACertificateIdentifier")) } + if let certificateDetails = certificateDetails { + try container.encode(certificateDetails, forKey: ClientRuntime.Key("CertificateDetails")) + } if let characterSetName = characterSetName { try container.encode(characterSetName, forKey: ClientRuntime.Key("CharacterSetName")) } @@ -14665,6 +14821,8 @@ extension RDSClientTypes.DBInstance: Swift.Codable { dbSystemId = dbSystemIdDecoded let masterUserSecretDecoded = try containerValues.decodeIfPresent(RDSClientTypes.MasterUserSecret.self, forKey: .masterUserSecret) masterUserSecret = masterUserSecretDecoded + let certificateDetailsDecoded = try containerValues.decodeIfPresent(RDSClientTypes.CertificateDetails.self, forKey: .certificateDetails) + certificateDetails = certificateDetailsDecoded } } @@ -14701,8 +14859,10 @@ extension RDSClientTypes { public var backupRetentionPeriod: Swift.Int /// Specifies where automated backups and manual snapshots are stored: Amazon Web Services Outposts or the Amazon Web Services Region. public var backupTarget: Swift.String? - /// The identifier of the CA certificate for this DB instance. + /// The identifier of the CA certificate for this DB instance. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public var caCertificateIdentifier: Swift.String? + /// The details of the DB instance's server certificate. + public var certificateDetails: RDSClientTypes.CertificateDetails? /// If present, specifies the name of the character set that this instance is associated with. public var characterSetName: Swift.String? /// Specifies whether tags are copied from the DB instance to snapshots of the DB instance. Amazon Aurora Not applicable. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. For more information, see DBCluster. @@ -14886,6 +15046,7 @@ extension RDSClientTypes { backupRetentionPeriod: Swift.Int = 0, backupTarget: Swift.String? = nil, caCertificateIdentifier: Swift.String? = nil, + certificateDetails: RDSClientTypes.CertificateDetails? = nil, characterSetName: Swift.String? = nil, copyTagsToSnapshot: Swift.Bool = false, customIamInstanceProfile: Swift.String? = nil, @@ -14967,6 +15128,7 @@ extension RDSClientTypes { self.backupRetentionPeriod = backupRetentionPeriod self.backupTarget = backupTarget self.caCertificateIdentifier = caCertificateIdentifier + self.certificateDetails = certificateDetails self.characterSetName = characterSetName self.copyTagsToSnapshot = copyTagsToSnapshot self.customIamInstanceProfile = customIamInstanceProfile @@ -19248,12 +19410,14 @@ extension DeleteCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = output.kmsKeyId self.majorEngineVersion = output.majorEngineVersion self.status = output.status + self.supportedCACertificateIdentifiers = output.supportedCACertificateIdentifiers self.supportedCharacterSets = output.supportedCharacterSets self.supportedEngineModes = output.supportedEngineModes self.supportedFeatureNames = output.supportedFeatureNames self.supportedNcharCharacterSets = output.supportedNcharCharacterSets self.supportedTimezones = output.supportedTimezones self.supportsBabelfish = output.supportsBabelfish + self.supportsCertificateRotationWithoutRestart = output.supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = output.supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = output.supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = output.supportsParallelQuery @@ -19278,12 +19442,14 @@ extension DeleteCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = nil self.majorEngineVersion = nil self.status = nil + self.supportedCACertificateIdentifiers = nil self.supportedCharacterSets = nil self.supportedEngineModes = nil self.supportedFeatureNames = nil self.supportedNcharCharacterSets = nil self.supportedTimezones = nil self.supportsBabelfish = false + self.supportsCertificateRotationWithoutRestart = nil self.supportsGlobalDatabases = false self.supportsLogExportsToCloudwatchLogs = false self.supportsParallelQuery = false @@ -19330,6 +19496,8 @@ public struct DeleteCustomDBEngineVersionOutputResponse: Swift.Equatable { public var majorEngineVersion: Swift.String? /// The status of the DB engine version, either available or deprecated. public var status: Swift.String? + /// A list of the supported CA certificate identifiers. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public var supportedCACertificateIdentifiers: [Swift.String]? /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation. public var supportedCharacterSets: [RDSClientTypes.CharacterSet]? /// A list of the supported DB engine modes. @@ -19342,6 +19510,8 @@ public struct DeleteCustomDBEngineVersionOutputResponse: Swift.Equatable { public var supportedTimezones: [RDSClientTypes.Timezone]? /// A value that indicates whether the engine version supports Babelfish for Aurora PostgreSQL. public var supportsBabelfish: Swift.Bool + /// A value that indicates whether the engine version supports rotating the server certificate without rebooting the DB instance. + public var supportsCertificateRotationWithoutRestart: Swift.Bool? /// A value that indicates whether you can use Aurora global databases with a specific DB engine version. public var supportsGlobalDatabases: Swift.Bool /// A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. @@ -19373,12 +19543,14 @@ public struct DeleteCustomDBEngineVersionOutputResponse: Swift.Equatable { kmsKeyId: Swift.String? = nil, majorEngineVersion: Swift.String? = nil, status: Swift.String? = nil, + supportedCACertificateIdentifiers: [Swift.String]? = nil, supportedCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedEngineModes: [Swift.String]? = nil, supportedFeatureNames: [Swift.String]? = nil, supportedNcharCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedTimezones: [RDSClientTypes.Timezone]? = nil, supportsBabelfish: Swift.Bool = false, + supportsCertificateRotationWithoutRestart: Swift.Bool? = nil, supportsGlobalDatabases: Swift.Bool = false, supportsLogExportsToCloudwatchLogs: Swift.Bool = false, supportsParallelQuery: Swift.Bool = false, @@ -19404,12 +19576,14 @@ public struct DeleteCustomDBEngineVersionOutputResponse: Swift.Equatable { self.kmsKeyId = kmsKeyId self.majorEngineVersion = majorEngineVersion self.status = status + self.supportedCACertificateIdentifiers = supportedCACertificateIdentifiers self.supportedCharacterSets = supportedCharacterSets self.supportedEngineModes = supportedEngineModes self.supportedFeatureNames = supportedFeatureNames self.supportedNcharCharacterSets = supportedNcharCharacterSets self.supportedTimezones = supportedTimezones self.supportsBabelfish = supportsBabelfish + self.supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = supportsParallelQuery @@ -19449,6 +19623,8 @@ struct DeleteCustomDBEngineVersionOutputResponseBody: Swift.Equatable { let tagList: [RDSClientTypes.Tag]? let supportsBabelfish: Swift.Bool let customDBEngineVersionManifest: Swift.String? + let supportsCertificateRotationWithoutRestart: Swift.Bool? + let supportedCACertificateIdentifiers: [Swift.String]? } extension DeleteCustomDBEngineVersionOutputResponseBody: Swift.Decodable { @@ -19470,12 +19646,14 @@ extension DeleteCustomDBEngineVersionOutputResponseBody: Swift.Decodable { case kmsKeyId = "KMSKeyId" case majorEngineVersion = "MajorEngineVersion" case status = "Status" + case supportedCACertificateIdentifiers = "SupportedCACertificateIdentifiers" case supportedCharacterSets = "SupportedCharacterSets" case supportedEngineModes = "SupportedEngineModes" case supportedFeatureNames = "SupportedFeatureNames" case supportedNcharCharacterSets = "SupportedNcharCharacterSets" case supportedTimezones = "SupportedTimezones" case supportsBabelfish = "SupportsBabelfish" + case supportsCertificateRotationWithoutRestart = "SupportsCertificateRotationWithoutRestart" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsLogExportsToCloudwatchLogs = "SupportsLogExportsToCloudwatchLogs" case supportsParallelQuery = "SupportsParallelQuery" @@ -19681,6 +19859,27 @@ extension DeleteCustomDBEngineVersionOutputResponseBody: Swift.Decodable { supportsBabelfish = supportsBabelfishDecoded let customDBEngineVersionManifestDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .customDBEngineVersionManifest) customDBEngineVersionManifest = customDBEngineVersionManifestDecoded + let supportsCertificateRotationWithoutRestartDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .supportsCertificateRotationWithoutRestart) + supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestartDecoded + if containerValues.contains(.supportedCACertificateIdentifiers) { + struct KeyVal0{struct member{}} + let supportedCACertificateIdentifiersWrappedContainer = containerValues.nestedContainerNonThrowable(keyedBy: CollectionMemberCodingKey.CodingKeys.self, forKey: .supportedCACertificateIdentifiers) + if let supportedCACertificateIdentifiersWrappedContainer = supportedCACertificateIdentifiersWrappedContainer { + let supportedCACertificateIdentifiersContainer = try supportedCACertificateIdentifiersWrappedContainer.decodeIfPresent([Swift.String].self, forKey: .member) + var supportedCACertificateIdentifiersBuffer:[Swift.String]? = nil + if let supportedCACertificateIdentifiersContainer = supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer = [Swift.String]() + for stringContainer0 in supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer?.append(stringContainer0) + } + } + supportedCACertificateIdentifiers = supportedCACertificateIdentifiersBuffer + } else { + supportedCACertificateIdentifiers = [] + } + } else { + supportedCACertificateIdentifiers = nil + } } } @@ -34570,7 +34769,7 @@ extension ModifyCertificatesOutputResponse: ClientRuntime.HttpResponseBinding { } public struct ModifyCertificatesOutputResponse: Swift.Equatable { - /// A CA certificate for an Amazon Web Services account. + /// A CA certificate for an Amazon Web Services account. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public var certificate: RDSClientTypes.Certificate? public init ( @@ -34916,12 +35115,14 @@ extension ModifyCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = output.kmsKeyId self.majorEngineVersion = output.majorEngineVersion self.status = output.status + self.supportedCACertificateIdentifiers = output.supportedCACertificateIdentifiers self.supportedCharacterSets = output.supportedCharacterSets self.supportedEngineModes = output.supportedEngineModes self.supportedFeatureNames = output.supportedFeatureNames self.supportedNcharCharacterSets = output.supportedNcharCharacterSets self.supportedTimezones = output.supportedTimezones self.supportsBabelfish = output.supportsBabelfish + self.supportsCertificateRotationWithoutRestart = output.supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = output.supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = output.supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = output.supportsParallelQuery @@ -34946,12 +35147,14 @@ extension ModifyCustomDBEngineVersionOutputResponse: ClientRuntime.HttpResponseB self.kmsKeyId = nil self.majorEngineVersion = nil self.status = nil + self.supportedCACertificateIdentifiers = nil self.supportedCharacterSets = nil self.supportedEngineModes = nil self.supportedFeatureNames = nil self.supportedNcharCharacterSets = nil self.supportedTimezones = nil self.supportsBabelfish = false + self.supportsCertificateRotationWithoutRestart = nil self.supportsGlobalDatabases = false self.supportsLogExportsToCloudwatchLogs = false self.supportsParallelQuery = false @@ -34998,6 +35201,8 @@ public struct ModifyCustomDBEngineVersionOutputResponse: Swift.Equatable { public var majorEngineVersion: Swift.String? /// The status of the DB engine version, either available or deprecated. public var status: Swift.String? + /// A list of the supported CA certificate identifiers. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. + public var supportedCACertificateIdentifiers: [Swift.String]? /// A list of the character sets supported by this engine for the CharacterSetName parameter of the CreateDBInstance operation. public var supportedCharacterSets: [RDSClientTypes.CharacterSet]? /// A list of the supported DB engine modes. @@ -35010,6 +35215,8 @@ public struct ModifyCustomDBEngineVersionOutputResponse: Swift.Equatable { public var supportedTimezones: [RDSClientTypes.Timezone]? /// A value that indicates whether the engine version supports Babelfish for Aurora PostgreSQL. public var supportsBabelfish: Swift.Bool + /// A value that indicates whether the engine version supports rotating the server certificate without rebooting the DB instance. + public var supportsCertificateRotationWithoutRestart: Swift.Bool? /// A value that indicates whether you can use Aurora global databases with a specific DB engine version. public var supportsGlobalDatabases: Swift.Bool /// A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. @@ -35041,12 +35248,14 @@ public struct ModifyCustomDBEngineVersionOutputResponse: Swift.Equatable { kmsKeyId: Swift.String? = nil, majorEngineVersion: Swift.String? = nil, status: Swift.String? = nil, + supportedCACertificateIdentifiers: [Swift.String]? = nil, supportedCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedEngineModes: [Swift.String]? = nil, supportedFeatureNames: [Swift.String]? = nil, supportedNcharCharacterSets: [RDSClientTypes.CharacterSet]? = nil, supportedTimezones: [RDSClientTypes.Timezone]? = nil, supportsBabelfish: Swift.Bool = false, + supportsCertificateRotationWithoutRestart: Swift.Bool? = nil, supportsGlobalDatabases: Swift.Bool = false, supportsLogExportsToCloudwatchLogs: Swift.Bool = false, supportsParallelQuery: Swift.Bool = false, @@ -35072,12 +35281,14 @@ public struct ModifyCustomDBEngineVersionOutputResponse: Swift.Equatable { self.kmsKeyId = kmsKeyId self.majorEngineVersion = majorEngineVersion self.status = status + self.supportedCACertificateIdentifiers = supportedCACertificateIdentifiers self.supportedCharacterSets = supportedCharacterSets self.supportedEngineModes = supportedEngineModes self.supportedFeatureNames = supportedFeatureNames self.supportedNcharCharacterSets = supportedNcharCharacterSets self.supportedTimezones = supportedTimezones self.supportsBabelfish = supportsBabelfish + self.supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestart self.supportsGlobalDatabases = supportsGlobalDatabases self.supportsLogExportsToCloudwatchLogs = supportsLogExportsToCloudwatchLogs self.supportsParallelQuery = supportsParallelQuery @@ -35117,6 +35328,8 @@ struct ModifyCustomDBEngineVersionOutputResponseBody: Swift.Equatable { let tagList: [RDSClientTypes.Tag]? let supportsBabelfish: Swift.Bool let customDBEngineVersionManifest: Swift.String? + let supportsCertificateRotationWithoutRestart: Swift.Bool? + let supportedCACertificateIdentifiers: [Swift.String]? } extension ModifyCustomDBEngineVersionOutputResponseBody: Swift.Decodable { @@ -35138,12 +35351,14 @@ extension ModifyCustomDBEngineVersionOutputResponseBody: Swift.Decodable { case kmsKeyId = "KMSKeyId" case majorEngineVersion = "MajorEngineVersion" case status = "Status" + case supportedCACertificateIdentifiers = "SupportedCACertificateIdentifiers" case supportedCharacterSets = "SupportedCharacterSets" case supportedEngineModes = "SupportedEngineModes" case supportedFeatureNames = "SupportedFeatureNames" case supportedNcharCharacterSets = "SupportedNcharCharacterSets" case supportedTimezones = "SupportedTimezones" case supportsBabelfish = "SupportsBabelfish" + case supportsCertificateRotationWithoutRestart = "SupportsCertificateRotationWithoutRestart" case supportsGlobalDatabases = "SupportsGlobalDatabases" case supportsLogExportsToCloudwatchLogs = "SupportsLogExportsToCloudwatchLogs" case supportsParallelQuery = "SupportsParallelQuery" @@ -35349,6 +35564,27 @@ extension ModifyCustomDBEngineVersionOutputResponseBody: Swift.Decodable { supportsBabelfish = supportsBabelfishDecoded let customDBEngineVersionManifestDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .customDBEngineVersionManifest) customDBEngineVersionManifest = customDBEngineVersionManifestDecoded + let supportsCertificateRotationWithoutRestartDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .supportsCertificateRotationWithoutRestart) + supportsCertificateRotationWithoutRestart = supportsCertificateRotationWithoutRestartDecoded + if containerValues.contains(.supportedCACertificateIdentifiers) { + struct KeyVal0{struct member{}} + let supportedCACertificateIdentifiersWrappedContainer = containerValues.nestedContainerNonThrowable(keyedBy: CollectionMemberCodingKey.CodingKeys.self, forKey: .supportedCACertificateIdentifiers) + if let supportedCACertificateIdentifiersWrappedContainer = supportedCACertificateIdentifiersWrappedContainer { + let supportedCACertificateIdentifiersContainer = try supportedCACertificateIdentifiersWrappedContainer.decodeIfPresent([Swift.String].self, forKey: .member) + var supportedCACertificateIdentifiersBuffer:[Swift.String]? = nil + if let supportedCACertificateIdentifiersContainer = supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer = [Swift.String]() + for stringContainer0 in supportedCACertificateIdentifiersContainer { + supportedCACertificateIdentifiersBuffer?.append(stringContainer0) + } + } + supportedCACertificateIdentifiers = supportedCACertificateIdentifiersBuffer + } else { + supportedCACertificateIdentifiers = [] + } + } else { + supportedCACertificateIdentifiers = nil + } } } @@ -35934,7 +36170,7 @@ public struct ModifyDBClusterInput: Swift.Equatable { /// * Can't end with a hyphen or contain two consecutive hyphens /// /// - /// Example: my-cluster2 Valid for: Aurora DB clusters only + /// Example: my-cluster2 Valid for: Aurora DB clusters and Multi-AZ DB clusters public var newDBClusterIdentifier: Swift.String? /// A value that indicates that the DB cluster should be associated with the specified option group. DB clusters are associated with a default option group that can't be modified. public var optionGroupName: Swift.String? @@ -36937,7 +37173,7 @@ public struct ModifyDBInstanceInput: Swift.Equatable { /// /// * It can be specified for a PostgreSQL read replica only if the source is running PostgreSQL 9.3.5. public var backupRetentionPeriod: Swift.Int? - /// Specifies the certificate to associate with the DB instance. This setting doesn't apply to RDS Custom. + /// Specifies the CA certificate identifier to use for the DB instance’s server certificate. This setting doesn't apply to RDS Custom. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public var caCertificateIdentifier: Swift.String? /// A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate. By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. Set this parameter only if you are not using SSL/TLS to connect to the DB instance. If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate: /// @@ -41754,7 +41990,7 @@ extension RDSClientTypes { public var automationMode: RDSClientTypes.AutomationMode? /// The number of days for which automated backups are retained. public var backupRetentionPeriod: Swift.Int? - /// The identifier of the CA certificate for the DB instance. + /// The identifier of the CA certificate for the DB instance. For more information, see [Using SSL/TLS to encrypt a connection to a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) in the Amazon RDS User Guide and [ Using SSL/TLS to encrypt a connection to a DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html) in the Amazon Aurora User Guide. public var caCertificateIdentifier: Swift.String? /// The name of the compute and memory capacity class for the DB instance. public var dbInstanceClass: Swift.String? @@ -46508,6 +46744,9 @@ extension RestoreDBClusterToPointInTimeOutputResponseBody: Swift.Decodable { extension RestoreDBInstanceFromDBSnapshotInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var container = encoder.container(keyedBy: ClientRuntime.Key.self) + if let allocatedStorage = allocatedStorage { + try container.encode(allocatedStorage, forKey: ClientRuntime.Key("AllocatedStorage")) + } if let autoMinorVersionUpgrade = autoMinorVersionUpgrade { try container.encode(autoMinorVersionUpgrade, forKey: ClientRuntime.Key("AutoMinorVersionUpgrade")) } @@ -46659,6 +46898,8 @@ extension RestoreDBInstanceFromDBSnapshotInput: ClientRuntime.URLPathProvider { /// public struct RestoreDBInstanceFromDBSnapshotInput: Swift.Equatable { + /// The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth. + public var allocatedStorage: Swift.Int? /// A value that indicates whether minor version upgrades are applied automatically to the DB instance during the maintenance window. If you restore an RDS Custom DB instance, you must disable this parameter. public var autoMinorVersionUpgrade: Swift.Bool? /// The Availability Zone (AZ) where the DB instance will be created. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment. Example: us-east-1a @@ -46805,6 +47046,7 @@ public struct RestoreDBInstanceFromDBSnapshotInput: Swift.Equatable { public var vpcSecurityGroupIds: [Swift.String]? public init ( + allocatedStorage: Swift.Int? = nil, autoMinorVersionUpgrade: Swift.Bool? = nil, availabilityZone: Swift.String? = nil, backupTarget: Swift.String? = nil, @@ -46841,6 +47083,7 @@ public struct RestoreDBInstanceFromDBSnapshotInput: Swift.Equatable { vpcSecurityGroupIds: [Swift.String]? = nil ) { + self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.backupTarget = backupTarget @@ -46913,10 +47156,12 @@ struct RestoreDBInstanceFromDBSnapshotInputBody: Swift.Equatable { let networkType: Swift.String? let storageThroughput: Swift.Int? let dbClusterSnapshotIdentifier: Swift.String? + let allocatedStorage: Swift.Int? } extension RestoreDBInstanceFromDBSnapshotInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case allocatedStorage = "AllocatedStorage" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case backupTarget = "BackupTarget" @@ -47091,6 +47336,8 @@ extension RestoreDBInstanceFromDBSnapshotInputBody: Swift.Decodable { storageThroughput = storageThroughputDecoded let dbClusterSnapshotIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .dbClusterSnapshotIdentifier) dbClusterSnapshotIdentifier = dbClusterSnapshotIdentifierDecoded + let allocatedStorageDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .allocatedStorage) + allocatedStorage = allocatedStorageDecoded } } @@ -47403,7 +47650,7 @@ extension RestoreDBInstanceFromS3Input: ClientRuntime.URLPathProvider { } public struct RestoreDBInstanceFromS3Input: Swift.Equatable { - /// The amount of storage (in gigabytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth. + /// The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth. public var allocatedStorage: Swift.Int? /// A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are not applied automatically. public var autoMinorVersionUpgrade: Swift.Bool? @@ -48060,6 +48307,9 @@ extension RestoreDBInstanceFromS3OutputResponseBody: Swift.Decodable { extension RestoreDBInstanceToPointInTimeInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var container = encoder.container(keyedBy: ClientRuntime.Key.self) + if let allocatedStorage = allocatedStorage { + try container.encode(allocatedStorage, forKey: ClientRuntime.Key("AllocatedStorage")) + } if let autoMinorVersionUpgrade = autoMinorVersionUpgrade { try container.encode(autoMinorVersionUpgrade, forKey: ClientRuntime.Key("AutoMinorVersionUpgrade")) } @@ -48223,6 +48473,8 @@ extension RestoreDBInstanceToPointInTimeInput: ClientRuntime.URLPathProvider { /// public struct RestoreDBInstanceToPointInTimeInput: Swift.Equatable { + /// The amount of storage (in gibibytes) to allocate initially for the DB instance. Follow the allocation rules specified in CreateDBInstance. Be sure to allocate enough memory for your new DB instance so that the restore operation can succeed. You can also allocate additional memory for future growth. + public var allocatedStorage: Swift.Int? /// A value that indicates whether minor version upgrades are applied automatically to the DB instance during the maintenance window. This setting doesn't apply to RDS Custom. public var autoMinorVersionUpgrade: Swift.Bool? /// The Availability Zone (AZ) where the DB instance will be created. Default: A random, system-chosen Availability Zone. Constraint: You can't specify the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment. Example: us-east-1a @@ -48363,6 +48615,7 @@ public struct RestoreDBInstanceToPointInTimeInput: Swift.Equatable { public var vpcSecurityGroupIds: [Swift.String]? public init ( + allocatedStorage: Swift.Int? = nil, autoMinorVersionUpgrade: Swift.Bool? = nil, availabilityZone: Swift.String? = nil, backupTarget: Swift.String? = nil, @@ -48403,6 +48656,7 @@ public struct RestoreDBInstanceToPointInTimeInput: Swift.Equatable { vpcSecurityGroupIds: [Swift.String]? = nil ) { + self.allocatedStorage = allocatedStorage self.autoMinorVersionUpgrade = autoMinorVersionUpgrade self.availabilityZone = availabilityZone self.backupTarget = backupTarget @@ -48483,10 +48737,12 @@ struct RestoreDBInstanceToPointInTimeInputBody: Swift.Equatable { let backupTarget: Swift.String? let networkType: Swift.String? let storageThroughput: Swift.Int? + let allocatedStorage: Swift.Int? } extension RestoreDBInstanceToPointInTimeInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case allocatedStorage = "AllocatedStorage" case autoMinorVersionUpgrade = "AutoMinorVersionUpgrade" case availabilityZone = "AvailabilityZone" case backupTarget = "BackupTarget" @@ -48673,6 +48929,8 @@ extension RestoreDBInstanceToPointInTimeInputBody: Swift.Decodable { networkType = networkTypeDecoded let storageThroughputDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .storageThroughput) storageThroughput = storageThroughputDecoded + let allocatedStorageDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .allocatedStorage) + allocatedStorage = allocatedStorageDecoded } } @@ -50440,25 +50698,25 @@ public struct StartExportTaskInput: Swift.Equatable { /// The name of the IAM role to use for writing to the Amazon S3 bucket when exporting a snapshot. /// This member is required. public var iamRoleArn: Swift.String? - /// The ID of the Amazon Web Services KMS key to use to encrypt the snapshot exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of this operation must be authorized to execute the following operations. These can be set in the Amazon Web Services KMS key policy: + /// The ID of the Amazon Web Services KMS key to use to encrypt the snapshot exported to Amazon S3. The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. The caller of this operation must be authorized to run the following operations. These can be set in the Amazon Web Services KMS key policy: /// - /// * GrantOperation.Encrypt + /// * kms:Encrypt /// - /// * GrantOperation.Decrypt + /// * kms:Decrypt /// - /// * GrantOperation.GenerateDataKey + /// * kms:GenerateDataKey /// - /// * GrantOperation.GenerateDataKeyWithoutPlaintext + /// * kms:GenerateDataKeyWithoutPlaintext /// - /// * GrantOperation.ReEncryptFrom + /// * kms:ReEncryptFrom /// - /// * GrantOperation.ReEncryptTo + /// * kms:ReEncryptTo /// - /// * GrantOperation.CreateGrant + /// * kms:CreateGrant /// - /// * GrantOperation.DescribeKey + /// * kms:DescribeKey /// - /// * GrantOperation.RetireGrant + /// * kms:RetireGrant /// This member is required. public var kmsKeyId: Swift.String? /// The name of the Amazon S3 bucket to export the snapshot to. diff --git a/Sources/Services/AWSRbin/Paginators.swift b/Sources/Services/AWSRbin/Paginators.swift index 384c5f3d80b..cf4823456a7 100644 --- a/Sources/Services/AWSRbin/Paginators.swift +++ b/Sources/Services/AWSRbin/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` extension RbinClient { + /// Paginate over `[ListRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` public func listRulesPaginated(input: ListRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRulesInput.nextToken, outputKey: \ListRulesOutputResponse.nextToken, paginationFunction: self.listRules(input:)) } @@ -28,10 +27,10 @@ extension ListRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` -/// to access the nested member `[RbinClientTypes.RuleSummary]` -/// - Returns: `[RbinClientTypes.RuleSummary]` extension PaginatorSequence where Input == ListRulesInput, Output == ListRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` + /// to access the nested member `[RbinClientTypes.RuleSummary]` + /// - Returns: `[RbinClientTypes.RuleSummary]` public func rules() async throws -> [RbinClientTypes.RuleSummary] { return try await self.asyncCompactMap { item in item.rules } } diff --git a/Sources/Services/AWSRedshift/Paginators.swift b/Sources/Services/AWSRedshift/Paginators.swift index 43701551ea0..e9c96dc85db 100644 --- a/Sources/Services/AWSRedshift/Paginators.swift +++ b/Sources/Services/AWSRedshift/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeClusterDbRevisionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterDbRevisionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterDbRevisionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterDbRevisionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterDbRevisionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterDbRevisionsOutputResponse` public func describeClusterDbRevisionsPaginated(input: DescribeClusterDbRevisionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterDbRevisionsInput.marker, outputKey: \DescribeClusterDbRevisionsOutputResponse.marker, paginationFunction: self.describeClusterDbRevisions(input:)) } @@ -26,24 +25,23 @@ extension DescribeClusterDbRevisionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterDbRevisionsPaginated` -/// to access the nested member `[RedshiftClientTypes.ClusterDbRevision]` -/// - Returns: `[RedshiftClientTypes.ClusterDbRevision]` extension PaginatorSequence where Input == DescribeClusterDbRevisionsInput, Output == DescribeClusterDbRevisionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterDbRevisionsPaginated` + /// to access the nested member `[RedshiftClientTypes.ClusterDbRevision]` + /// - Returns: `[RedshiftClientTypes.ClusterDbRevision]` public func clusterDbRevisions() async throws -> [RedshiftClientTypes.ClusterDbRevision] { return try await self.asyncCompactMap { item in item.clusterDbRevisions } } } - -/// Paginate over `[DescribeClusterParameterGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterParameterGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterParameterGroupsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterParameterGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterParameterGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterParameterGroupsOutputResponse` public func describeClusterParameterGroupsPaginated(input: DescribeClusterParameterGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterParameterGroupsInput.marker, outputKey: \DescribeClusterParameterGroupsOutputResponse.marker, paginationFunction: self.describeClusterParameterGroups(input:)) } @@ -60,24 +58,23 @@ extension DescribeClusterParameterGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterParameterGroupsPaginated` -/// to access the nested member `[RedshiftClientTypes.ClusterParameterGroup]` -/// - Returns: `[RedshiftClientTypes.ClusterParameterGroup]` extension PaginatorSequence where Input == DescribeClusterParameterGroupsInput, Output == DescribeClusterParameterGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterParameterGroupsPaginated` + /// to access the nested member `[RedshiftClientTypes.ClusterParameterGroup]` + /// - Returns: `[RedshiftClientTypes.ClusterParameterGroup]` public func parameterGroups() async throws -> [RedshiftClientTypes.ClusterParameterGroup] { return try await self.asyncCompactMap { item in item.parameterGroups } } } - -/// Paginate over `[DescribeClusterParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterParametersOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterParametersOutputResponse` public func describeClusterParametersPaginated(input: DescribeClusterParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterParametersInput.marker, outputKey: \DescribeClusterParametersOutputResponse.marker, paginationFunction: self.describeClusterParameters(input:)) } @@ -93,24 +90,23 @@ extension DescribeClusterParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterParametersPaginated` -/// to access the nested member `[RedshiftClientTypes.Parameter]` -/// - Returns: `[RedshiftClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeClusterParametersInput, Output == DescribeClusterParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterParametersPaginated` + /// to access the nested member `[RedshiftClientTypes.Parameter]` + /// - Returns: `[RedshiftClientTypes.Parameter]` public func parameters() async throws -> [RedshiftClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.parameters } } } - -/// Paginate over `[DescribeClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClustersOutputResponse` public func describeClustersPaginated(input: DescribeClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClustersInput.marker, outputKey: \DescribeClustersOutputResponse.marker, paginationFunction: self.describeClusters(input:)) } @@ -127,24 +123,23 @@ extension DescribeClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClustersPaginated` -/// to access the nested member `[RedshiftClientTypes.Cluster]` -/// - Returns: `[RedshiftClientTypes.Cluster]` extension PaginatorSequence where Input == DescribeClustersInput, Output == DescribeClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClustersPaginated` + /// to access the nested member `[RedshiftClientTypes.Cluster]` + /// - Returns: `[RedshiftClientTypes.Cluster]` public func clusters() async throws -> [RedshiftClientTypes.Cluster] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[DescribeClusterSecurityGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterSecurityGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSecurityGroupsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterSecurityGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterSecurityGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSecurityGroupsOutputResponse` public func describeClusterSecurityGroupsPaginated(input: DescribeClusterSecurityGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterSecurityGroupsInput.marker, outputKey: \DescribeClusterSecurityGroupsOutputResponse.marker, paginationFunction: self.describeClusterSecurityGroups(input:)) } @@ -161,24 +156,23 @@ extension DescribeClusterSecurityGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterSecurityGroupsPaginated` -/// to access the nested member `[RedshiftClientTypes.ClusterSecurityGroup]` -/// - Returns: `[RedshiftClientTypes.ClusterSecurityGroup]` extension PaginatorSequence where Input == DescribeClusterSecurityGroupsInput, Output == DescribeClusterSecurityGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterSecurityGroupsPaginated` + /// to access the nested member `[RedshiftClientTypes.ClusterSecurityGroup]` + /// - Returns: `[RedshiftClientTypes.ClusterSecurityGroup]` public func clusterSecurityGroups() async throws -> [RedshiftClientTypes.ClusterSecurityGroup] { return try await self.asyncCompactMap { item in item.clusterSecurityGroups } } } - -/// Paginate over `[DescribeClusterSnapshotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterSnapshotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSnapshotsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterSnapshotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterSnapshotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSnapshotsOutputResponse` public func describeClusterSnapshotsPaginated(input: DescribeClusterSnapshotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterSnapshotsInput.marker, outputKey: \DescribeClusterSnapshotsOutputResponse.marker, paginationFunction: self.describeClusterSnapshots(input:)) } @@ -203,24 +197,23 @@ extension DescribeClusterSnapshotsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterSnapshotsPaginated` -/// to access the nested member `[RedshiftClientTypes.Snapshot]` -/// - Returns: `[RedshiftClientTypes.Snapshot]` extension PaginatorSequence where Input == DescribeClusterSnapshotsInput, Output == DescribeClusterSnapshotsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterSnapshotsPaginated` + /// to access the nested member `[RedshiftClientTypes.Snapshot]` + /// - Returns: `[RedshiftClientTypes.Snapshot]` public func snapshots() async throws -> [RedshiftClientTypes.Snapshot] { return try await self.asyncCompactMap { item in item.snapshots } } } - -/// Paginate over `[DescribeClusterSubnetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterSubnetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSubnetGroupsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterSubnetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterSubnetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterSubnetGroupsOutputResponse` public func describeClusterSubnetGroupsPaginated(input: DescribeClusterSubnetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterSubnetGroupsInput.marker, outputKey: \DescribeClusterSubnetGroupsOutputResponse.marker, paginationFunction: self.describeClusterSubnetGroups(input:)) } @@ -237,24 +230,23 @@ extension DescribeClusterSubnetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterSubnetGroupsPaginated` -/// to access the nested member `[RedshiftClientTypes.ClusterSubnetGroup]` -/// - Returns: `[RedshiftClientTypes.ClusterSubnetGroup]` extension PaginatorSequence where Input == DescribeClusterSubnetGroupsInput, Output == DescribeClusterSubnetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterSubnetGroupsPaginated` + /// to access the nested member `[RedshiftClientTypes.ClusterSubnetGroup]` + /// - Returns: `[RedshiftClientTypes.ClusterSubnetGroup]` public func clusterSubnetGroups() async throws -> [RedshiftClientTypes.ClusterSubnetGroup] { return try await self.asyncCompactMap { item in item.clusterSubnetGroups } } } - -/// Paginate over `[DescribeClusterTracksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterTracksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterTracksOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterTracksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterTracksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterTracksOutputResponse` public func describeClusterTracksPaginated(input: DescribeClusterTracksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterTracksInput.marker, outputKey: \DescribeClusterTracksOutputResponse.marker, paginationFunction: self.describeClusterTracks(input:)) } @@ -269,24 +261,23 @@ extension DescribeClusterTracksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterTracksPaginated` -/// to access the nested member `[RedshiftClientTypes.MaintenanceTrack]` -/// - Returns: `[RedshiftClientTypes.MaintenanceTrack]` extension PaginatorSequence where Input == DescribeClusterTracksInput, Output == DescribeClusterTracksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterTracksPaginated` + /// to access the nested member `[RedshiftClientTypes.MaintenanceTrack]` + /// - Returns: `[RedshiftClientTypes.MaintenanceTrack]` public func maintenanceTracks() async throws -> [RedshiftClientTypes.MaintenanceTrack] { return try await self.asyncCompactMap { item in item.maintenanceTracks } } } - -/// Paginate over `[DescribeClusterVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeClusterVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterVersionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeClusterVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeClusterVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeClusterVersionsOutputResponse` public func describeClusterVersionsPaginated(input: DescribeClusterVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeClusterVersionsInput.marker, outputKey: \DescribeClusterVersionsOutputResponse.marker, paginationFunction: self.describeClusterVersions(input:)) } @@ -302,24 +293,23 @@ extension DescribeClusterVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeClusterVersionsPaginated` -/// to access the nested member `[RedshiftClientTypes.ClusterVersion]` -/// - Returns: `[RedshiftClientTypes.ClusterVersion]` extension PaginatorSequence where Input == DescribeClusterVersionsInput, Output == DescribeClusterVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeClusterVersionsPaginated` + /// to access the nested member `[RedshiftClientTypes.ClusterVersion]` + /// - Returns: `[RedshiftClientTypes.ClusterVersion]` public func clusterVersions() async throws -> [RedshiftClientTypes.ClusterVersion] { return try await self.asyncCompactMap { item in item.clusterVersions } } } - -/// Paginate over `[DescribeDataSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeDataSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesOutputResponse` public func describeDataSharesPaginated(input: DescribeDataSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataSharesInput.marker, outputKey: \DescribeDataSharesOutputResponse.marker, paginationFunction: self.describeDataShares(input:)) } @@ -334,24 +324,23 @@ extension DescribeDataSharesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDataSharesPaginated` -/// to access the nested member `[RedshiftClientTypes.DataShare]` -/// - Returns: `[RedshiftClientTypes.DataShare]` extension PaginatorSequence where Input == DescribeDataSharesInput, Output == DescribeDataSharesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDataSharesPaginated` + /// to access the nested member `[RedshiftClientTypes.DataShare]` + /// - Returns: `[RedshiftClientTypes.DataShare]` public func dataShares() async throws -> [RedshiftClientTypes.DataShare] { return try await self.asyncCompactMap { item in item.dataShares } } } - -/// Paginate over `[DescribeDataSharesForConsumerOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataSharesForConsumerInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesForConsumerOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeDataSharesForConsumerOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataSharesForConsumerInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesForConsumerOutputResponse` public func describeDataSharesForConsumerPaginated(input: DescribeDataSharesForConsumerInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataSharesForConsumerInput.marker, outputKey: \DescribeDataSharesForConsumerOutputResponse.marker, paginationFunction: self.describeDataSharesForConsumer(input:)) } @@ -367,24 +356,23 @@ extension DescribeDataSharesForConsumerInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDataSharesForConsumerPaginated` -/// to access the nested member `[RedshiftClientTypes.DataShare]` -/// - Returns: `[RedshiftClientTypes.DataShare]` extension PaginatorSequence where Input == DescribeDataSharesForConsumerInput, Output == DescribeDataSharesForConsumerOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDataSharesForConsumerPaginated` + /// to access the nested member `[RedshiftClientTypes.DataShare]` + /// - Returns: `[RedshiftClientTypes.DataShare]` public func dataShares() async throws -> [RedshiftClientTypes.DataShare] { return try await self.asyncCompactMap { item in item.dataShares } } } - -/// Paginate over `[DescribeDataSharesForProducerOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDataSharesForProducerInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesForProducerOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeDataSharesForProducerOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDataSharesForProducerInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDataSharesForProducerOutputResponse` public func describeDataSharesForProducerPaginated(input: DescribeDataSharesForProducerInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDataSharesForProducerInput.marker, outputKey: \DescribeDataSharesForProducerOutputResponse.marker, paginationFunction: self.describeDataSharesForProducer(input:)) } @@ -400,24 +388,23 @@ extension DescribeDataSharesForProducerInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDataSharesForProducerPaginated` -/// to access the nested member `[RedshiftClientTypes.DataShare]` -/// - Returns: `[RedshiftClientTypes.DataShare]` extension PaginatorSequence where Input == DescribeDataSharesForProducerInput, Output == DescribeDataSharesForProducerOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDataSharesForProducerPaginated` + /// to access the nested member `[RedshiftClientTypes.DataShare]` + /// - Returns: `[RedshiftClientTypes.DataShare]` public func dataShares() async throws -> [RedshiftClientTypes.DataShare] { return try await self.asyncCompactMap { item in item.dataShares } } } - -/// Paginate over `[DescribeDefaultClusterParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDefaultClusterParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDefaultClusterParametersOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeDefaultClusterParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDefaultClusterParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDefaultClusterParametersOutputResponse` public func describeDefaultClusterParametersPaginated(input: DescribeDefaultClusterParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDefaultClusterParametersInput.marker, outputKey: \DescribeDefaultClusterParametersOutputResponse.defaultClusterParameters?.marker, paginationFunction: self.describeDefaultClusterParameters(input:)) } @@ -432,24 +419,23 @@ extension DescribeDefaultClusterParametersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDefaultClusterParametersPaginated` -/// to access the nested member `[RedshiftClientTypes.Parameter]` -/// - Returns: `[RedshiftClientTypes.Parameter]` extension PaginatorSequence where Input == DescribeDefaultClusterParametersInput, Output == DescribeDefaultClusterParametersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDefaultClusterParametersPaginated` + /// to access the nested member `[RedshiftClientTypes.Parameter]` + /// - Returns: `[RedshiftClientTypes.Parameter]` public func parameters() async throws -> [RedshiftClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.defaultClusterParameters?.parameters } } } - -/// Paginate over `[DescribeEndpointAccessOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointAccessInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointAccessOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeEndpointAccessOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointAccessInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointAccessOutputResponse` public func describeEndpointAccessPaginated(input: DescribeEndpointAccessInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointAccessInput.marker, outputKey: \DescribeEndpointAccessOutputResponse.marker, paginationFunction: self.describeEndpointAccess(input:)) } @@ -467,24 +453,23 @@ extension DescribeEndpointAccessInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEndpointAccessPaginated` -/// to access the nested member `[RedshiftClientTypes.EndpointAccess]` -/// - Returns: `[RedshiftClientTypes.EndpointAccess]` extension PaginatorSequence where Input == DescribeEndpointAccessInput, Output == DescribeEndpointAccessOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEndpointAccessPaginated` + /// to access the nested member `[RedshiftClientTypes.EndpointAccess]` + /// - Returns: `[RedshiftClientTypes.EndpointAccess]` public func endpointAccessList() async throws -> [RedshiftClientTypes.EndpointAccess] { return try await self.asyncCompactMap { item in item.endpointAccessList } } } - -/// Paginate over `[DescribeEndpointAuthorizationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEndpointAuthorizationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointAuthorizationOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeEndpointAuthorizationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEndpointAuthorizationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEndpointAuthorizationOutputResponse` public func describeEndpointAuthorizationPaginated(input: DescribeEndpointAuthorizationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEndpointAuthorizationInput.marker, outputKey: \DescribeEndpointAuthorizationOutputResponse.marker, paginationFunction: self.describeEndpointAuthorization(input:)) } @@ -501,24 +486,23 @@ extension DescribeEndpointAuthorizationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEndpointAuthorizationPaginated` -/// to access the nested member `[RedshiftClientTypes.EndpointAuthorization]` -/// - Returns: `[RedshiftClientTypes.EndpointAuthorization]` extension PaginatorSequence where Input == DescribeEndpointAuthorizationInput, Output == DescribeEndpointAuthorizationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEndpointAuthorizationPaginated` + /// to access the nested member `[RedshiftClientTypes.EndpointAuthorization]` + /// - Returns: `[RedshiftClientTypes.EndpointAuthorization]` public func endpointAuthorizationList() async throws -> [RedshiftClientTypes.EndpointAuthorization] { return try await self.asyncCompactMap { item in item.endpointAuthorizationList } } } - -/// Paginate over `[DescribeEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventsOutputResponse` public func describeEventsPaginated(input: DescribeEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventsInput.marker, outputKey: \DescribeEventsOutputResponse.marker, paginationFunction: self.describeEvents(input:)) } @@ -537,24 +521,23 @@ extension DescribeEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` -/// to access the nested member `[RedshiftClientTypes.Event]` -/// - Returns: `[RedshiftClientTypes.Event]` extension PaginatorSequence where Input == DescribeEventsInput, Output == DescribeEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventsPaginated` + /// to access the nested member `[RedshiftClientTypes.Event]` + /// - Returns: `[RedshiftClientTypes.Event]` public func events() async throws -> [RedshiftClientTypes.Event] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEventSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeEventSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEventSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEventSubscriptionsOutputResponse` public func describeEventSubscriptionsPaginated(input: DescribeEventSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEventSubscriptionsInput.marker, outputKey: \DescribeEventSubscriptionsOutputResponse.marker, paginationFunction: self.describeEventSubscriptions(input:)) } @@ -571,24 +554,23 @@ extension DescribeEventSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` -/// to access the nested member `[RedshiftClientTypes.EventSubscription]` -/// - Returns: `[RedshiftClientTypes.EventSubscription]` extension PaginatorSequence where Input == DescribeEventSubscriptionsInput, Output == DescribeEventSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEventSubscriptionsPaginated` + /// to access the nested member `[RedshiftClientTypes.EventSubscription]` + /// - Returns: `[RedshiftClientTypes.EventSubscription]` public func eventSubscriptionsList() async throws -> [RedshiftClientTypes.EventSubscription] { return try await self.asyncCompactMap { item in item.eventSubscriptionsList } } } - -/// Paginate over `[DescribeHsmClientCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHsmClientCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHsmClientCertificatesOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeHsmClientCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHsmClientCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHsmClientCertificatesOutputResponse` public func describeHsmClientCertificatesPaginated(input: DescribeHsmClientCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHsmClientCertificatesInput.marker, outputKey: \DescribeHsmClientCertificatesOutputResponse.marker, paginationFunction: self.describeHsmClientCertificates(input:)) } @@ -605,24 +587,23 @@ extension DescribeHsmClientCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeHsmClientCertificatesPaginated` -/// to access the nested member `[RedshiftClientTypes.HsmClientCertificate]` -/// - Returns: `[RedshiftClientTypes.HsmClientCertificate]` extension PaginatorSequence where Input == DescribeHsmClientCertificatesInput, Output == DescribeHsmClientCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeHsmClientCertificatesPaginated` + /// to access the nested member `[RedshiftClientTypes.HsmClientCertificate]` + /// - Returns: `[RedshiftClientTypes.HsmClientCertificate]` public func hsmClientCertificates() async throws -> [RedshiftClientTypes.HsmClientCertificate] { return try await self.asyncCompactMap { item in item.hsmClientCertificates } } } - -/// Paginate over `[DescribeHsmConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeHsmConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeHsmConfigurationsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeHsmConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeHsmConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeHsmConfigurationsOutputResponse` public func describeHsmConfigurationsPaginated(input: DescribeHsmConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeHsmConfigurationsInput.marker, outputKey: \DescribeHsmConfigurationsOutputResponse.marker, paginationFunction: self.describeHsmConfigurations(input:)) } @@ -639,24 +620,23 @@ extension DescribeHsmConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeHsmConfigurationsPaginated` -/// to access the nested member `[RedshiftClientTypes.HsmConfiguration]` -/// - Returns: `[RedshiftClientTypes.HsmConfiguration]` extension PaginatorSequence where Input == DescribeHsmConfigurationsInput, Output == DescribeHsmConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeHsmConfigurationsPaginated` + /// to access the nested member `[RedshiftClientTypes.HsmConfiguration]` + /// - Returns: `[RedshiftClientTypes.HsmConfiguration]` public func hsmConfigurations() async throws -> [RedshiftClientTypes.HsmConfiguration] { return try await self.asyncCompactMap { item in item.hsmConfigurations } } } - -/// Paginate over `[DescribeNodeConfigurationOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeNodeConfigurationOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeNodeConfigurationOptionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeNodeConfigurationOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeNodeConfigurationOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeNodeConfigurationOptionsOutputResponse` public func describeNodeConfigurationOptionsPaginated(input: DescribeNodeConfigurationOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeNodeConfigurationOptionsInput.marker, outputKey: \DescribeNodeConfigurationOptionsOutputResponse.marker, paginationFunction: self.describeNodeConfigurationOptions(input:)) } @@ -676,24 +656,23 @@ extension DescribeNodeConfigurationOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeNodeConfigurationOptionsPaginated` -/// to access the nested member `[RedshiftClientTypes.NodeConfigurationOption]` -/// - Returns: `[RedshiftClientTypes.NodeConfigurationOption]` extension PaginatorSequence where Input == DescribeNodeConfigurationOptionsInput, Output == DescribeNodeConfigurationOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeNodeConfigurationOptionsPaginated` + /// to access the nested member `[RedshiftClientTypes.NodeConfigurationOption]` + /// - Returns: `[RedshiftClientTypes.NodeConfigurationOption]` public func nodeConfigurationOptionList() async throws -> [RedshiftClientTypes.NodeConfigurationOption] { return try await self.asyncCompactMap { item in item.nodeConfigurationOptionList } } } - -/// Paginate over `[DescribeOrderableClusterOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOrderableClusterOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableClusterOptionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeOrderableClusterOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOrderableClusterOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOrderableClusterOptionsOutputResponse` public func describeOrderableClusterOptionsPaginated(input: DescribeOrderableClusterOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOrderableClusterOptionsInput.marker, outputKey: \DescribeOrderableClusterOptionsOutputResponse.marker, paginationFunction: self.describeOrderableClusterOptions(input:)) } @@ -709,24 +688,23 @@ extension DescribeOrderableClusterOptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOrderableClusterOptionsPaginated` -/// to access the nested member `[RedshiftClientTypes.OrderableClusterOption]` -/// - Returns: `[RedshiftClientTypes.OrderableClusterOption]` extension PaginatorSequence where Input == DescribeOrderableClusterOptionsInput, Output == DescribeOrderableClusterOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOrderableClusterOptionsPaginated` + /// to access the nested member `[RedshiftClientTypes.OrderableClusterOption]` + /// - Returns: `[RedshiftClientTypes.OrderableClusterOption]` public func orderableClusterOptions() async throws -> [RedshiftClientTypes.OrderableClusterOption] { return try await self.asyncCompactMap { item in item.orderableClusterOptions } } } - -/// Paginate over `[DescribeReservedNodeExchangeStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedNodeExchangeStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodeExchangeStatusOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeReservedNodeExchangeStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedNodeExchangeStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodeExchangeStatusOutputResponse` public func describeReservedNodeExchangeStatusPaginated(input: DescribeReservedNodeExchangeStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedNodeExchangeStatusInput.marker, outputKey: \DescribeReservedNodeExchangeStatusOutputResponse.marker, paginationFunction: self.describeReservedNodeExchangeStatus(input:)) } @@ -742,24 +720,23 @@ extension DescribeReservedNodeExchangeStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedNodeExchangeStatusPaginated` -/// to access the nested member `[RedshiftClientTypes.ReservedNodeExchangeStatus]` -/// - Returns: `[RedshiftClientTypes.ReservedNodeExchangeStatus]` extension PaginatorSequence where Input == DescribeReservedNodeExchangeStatusInput, Output == DescribeReservedNodeExchangeStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedNodeExchangeStatusPaginated` + /// to access the nested member `[RedshiftClientTypes.ReservedNodeExchangeStatus]` + /// - Returns: `[RedshiftClientTypes.ReservedNodeExchangeStatus]` public func reservedNodeExchangeStatusDetails() async throws -> [RedshiftClientTypes.ReservedNodeExchangeStatus] { return try await self.asyncCompactMap { item in item.reservedNodeExchangeStatusDetails } } } - -/// Paginate over `[DescribeReservedNodeOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedNodeOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodeOfferingsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeReservedNodeOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedNodeOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodeOfferingsOutputResponse` public func describeReservedNodeOfferingsPaginated(input: DescribeReservedNodeOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedNodeOfferingsInput.marker, outputKey: \DescribeReservedNodeOfferingsOutputResponse.marker, paginationFunction: self.describeReservedNodeOfferings(input:)) } @@ -774,24 +751,23 @@ extension DescribeReservedNodeOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedNodeOfferingsPaginated` -/// to access the nested member `[RedshiftClientTypes.ReservedNodeOffering]` -/// - Returns: `[RedshiftClientTypes.ReservedNodeOffering]` extension PaginatorSequence where Input == DescribeReservedNodeOfferingsInput, Output == DescribeReservedNodeOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedNodeOfferingsPaginated` + /// to access the nested member `[RedshiftClientTypes.ReservedNodeOffering]` + /// - Returns: `[RedshiftClientTypes.ReservedNodeOffering]` public func reservedNodeOfferings() async throws -> [RedshiftClientTypes.ReservedNodeOffering] { return try await self.asyncCompactMap { item in item.reservedNodeOfferings } } } - -/// Paginate over `[DescribeReservedNodesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeReservedNodesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeReservedNodesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReservedNodesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReservedNodesOutputResponse` public func describeReservedNodesPaginated(input: DescribeReservedNodesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReservedNodesInput.marker, outputKey: \DescribeReservedNodesOutputResponse.marker, paginationFunction: self.describeReservedNodes(input:)) } @@ -806,24 +782,23 @@ extension DescribeReservedNodesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesPaginated` -/// to access the nested member `[RedshiftClientTypes.ReservedNode]` -/// - Returns: `[RedshiftClientTypes.ReservedNode]` extension PaginatorSequence where Input == DescribeReservedNodesInput, Output == DescribeReservedNodesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeReservedNodesPaginated` + /// to access the nested member `[RedshiftClientTypes.ReservedNode]` + /// - Returns: `[RedshiftClientTypes.ReservedNode]` public func reservedNodes() async throws -> [RedshiftClientTypes.ReservedNode] { return try await self.asyncCompactMap { item in item.reservedNodes } } } - -/// Paginate over `[DescribeScheduledActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeScheduledActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeScheduledActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeScheduledActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeScheduledActionsOutputResponse` public func describeScheduledActionsPaginated(input: DescribeScheduledActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeScheduledActionsInput.marker, outputKey: \DescribeScheduledActionsOutputResponse.marker, paginationFunction: self.describeScheduledActions(input:)) } @@ -843,24 +818,23 @@ extension DescribeScheduledActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` -/// to access the nested member `[RedshiftClientTypes.ScheduledAction]` -/// - Returns: `[RedshiftClientTypes.ScheduledAction]` extension PaginatorSequence where Input == DescribeScheduledActionsInput, Output == DescribeScheduledActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeScheduledActionsPaginated` + /// to access the nested member `[RedshiftClientTypes.ScheduledAction]` + /// - Returns: `[RedshiftClientTypes.ScheduledAction]` public func scheduledActions() async throws -> [RedshiftClientTypes.ScheduledAction] { return try await self.asyncCompactMap { item in item.scheduledActions } } } - -/// Paginate over `[DescribeSnapshotCopyGrantsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotCopyGrantsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotCopyGrantsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeSnapshotCopyGrantsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotCopyGrantsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotCopyGrantsOutputResponse` public func describeSnapshotCopyGrantsPaginated(input: DescribeSnapshotCopyGrantsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotCopyGrantsInput.marker, outputKey: \DescribeSnapshotCopyGrantsOutputResponse.marker, paginationFunction: self.describeSnapshotCopyGrants(input:)) } @@ -877,24 +851,23 @@ extension DescribeSnapshotCopyGrantsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotCopyGrantsPaginated` -/// to access the nested member `[RedshiftClientTypes.SnapshotCopyGrant]` -/// - Returns: `[RedshiftClientTypes.SnapshotCopyGrant]` extension PaginatorSequence where Input == DescribeSnapshotCopyGrantsInput, Output == DescribeSnapshotCopyGrantsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotCopyGrantsPaginated` + /// to access the nested member `[RedshiftClientTypes.SnapshotCopyGrant]` + /// - Returns: `[RedshiftClientTypes.SnapshotCopyGrant]` public func snapshotCopyGrants() async throws -> [RedshiftClientTypes.SnapshotCopyGrant] { return try await self.asyncCompactMap { item in item.snapshotCopyGrants } } } - -/// Paginate over `[DescribeSnapshotSchedulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSnapshotSchedulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotSchedulesOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeSnapshotSchedulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSnapshotSchedulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSnapshotSchedulesOutputResponse` public func describeSnapshotSchedulesPaginated(input: DescribeSnapshotSchedulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSnapshotSchedulesInput.marker, outputKey: \DescribeSnapshotSchedulesOutputResponse.marker, paginationFunction: self.describeSnapshotSchedules(input:)) } @@ -912,24 +885,23 @@ extension DescribeSnapshotSchedulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSnapshotSchedulesPaginated` -/// to access the nested member `[RedshiftClientTypes.SnapshotSchedule]` -/// - Returns: `[RedshiftClientTypes.SnapshotSchedule]` extension PaginatorSequence where Input == DescribeSnapshotSchedulesInput, Output == DescribeSnapshotSchedulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSnapshotSchedulesPaginated` + /// to access the nested member `[RedshiftClientTypes.SnapshotSchedule]` + /// - Returns: `[RedshiftClientTypes.SnapshotSchedule]` public func snapshotSchedules() async throws -> [RedshiftClientTypes.SnapshotSchedule] { return try await self.asyncCompactMap { item in item.snapshotSchedules } } } - -/// Paginate over `[DescribeTableRestoreStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTableRestoreStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTableRestoreStatusOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeTableRestoreStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTableRestoreStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTableRestoreStatusOutputResponse` public func describeTableRestoreStatusPaginated(input: DescribeTableRestoreStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTableRestoreStatusInput.marker, outputKey: \DescribeTableRestoreStatusOutputResponse.marker, paginationFunction: self.describeTableRestoreStatus(input:)) } @@ -945,24 +917,23 @@ extension DescribeTableRestoreStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTableRestoreStatusPaginated` -/// to access the nested member `[RedshiftClientTypes.TableRestoreStatus]` -/// - Returns: `[RedshiftClientTypes.TableRestoreStatus]` extension PaginatorSequence where Input == DescribeTableRestoreStatusInput, Output == DescribeTableRestoreStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTableRestoreStatusPaginated` + /// to access the nested member `[RedshiftClientTypes.TableRestoreStatus]` + /// - Returns: `[RedshiftClientTypes.TableRestoreStatus]` public func tableRestoreStatusDetails() async throws -> [RedshiftClientTypes.TableRestoreStatus] { return try await self.asyncCompactMap { item in item.tableRestoreStatusDetails } } } - -/// Paginate over `[DescribeTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTagsOutputResponse` public func describeTagsPaginated(input: DescribeTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTagsInput.marker, outputKey: \DescribeTagsOutputResponse.marker, paginationFunction: self.describeTags(input:)) } @@ -980,24 +951,23 @@ extension DescribeTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` -/// to access the nested member `[RedshiftClientTypes.TaggedResource]` -/// - Returns: `[RedshiftClientTypes.TaggedResource]` extension PaginatorSequence where Input == DescribeTagsInput, Output == DescribeTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTagsPaginated` + /// to access the nested member `[RedshiftClientTypes.TaggedResource]` + /// - Returns: `[RedshiftClientTypes.TaggedResource]` public func taggedResources() async throws -> [RedshiftClientTypes.TaggedResource] { return try await self.asyncCompactMap { item in item.taggedResources } } } - -/// Paginate over `[DescribeUsageLimitsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUsageLimitsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUsageLimitsOutputResponse` extension RedshiftClient { + /// Paginate over `[DescribeUsageLimitsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUsageLimitsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUsageLimitsOutputResponse` public func describeUsageLimitsPaginated(input: DescribeUsageLimitsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUsageLimitsInput.marker, outputKey: \DescribeUsageLimitsOutputResponse.marker, paginationFunction: self.describeUsageLimits(input:)) } @@ -1016,24 +986,23 @@ extension DescribeUsageLimitsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUsageLimitsPaginated` -/// to access the nested member `[RedshiftClientTypes.UsageLimit]` -/// - Returns: `[RedshiftClientTypes.UsageLimit]` extension PaginatorSequence where Input == DescribeUsageLimitsInput, Output == DescribeUsageLimitsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUsageLimitsPaginated` + /// to access the nested member `[RedshiftClientTypes.UsageLimit]` + /// - Returns: `[RedshiftClientTypes.UsageLimit]` public func usageLimits() async throws -> [RedshiftClientTypes.UsageLimit] { return try await self.asyncCompactMap { item in item.usageLimits } } } - -/// Paginate over `[GetReservedNodeExchangeConfigurationOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReservedNodeExchangeConfigurationOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReservedNodeExchangeConfigurationOptionsOutputResponse` extension RedshiftClient { + /// Paginate over `[GetReservedNodeExchangeConfigurationOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReservedNodeExchangeConfigurationOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReservedNodeExchangeConfigurationOptionsOutputResponse` public func getReservedNodeExchangeConfigurationOptionsPaginated(input: GetReservedNodeExchangeConfigurationOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReservedNodeExchangeConfigurationOptionsInput.marker, outputKey: \GetReservedNodeExchangeConfigurationOptionsOutputResponse.marker, paginationFunction: self.getReservedNodeExchangeConfigurationOptions(input:)) } @@ -1050,24 +1019,23 @@ extension GetReservedNodeExchangeConfigurationOptionsInput: ClientRuntime.Pagina )} } -/// This paginator transforms the `AsyncSequence` returned by `getReservedNodeExchangeConfigurationOptionsPaginated` -/// to access the nested member `[RedshiftClientTypes.ReservedNodeConfigurationOption]` -/// - Returns: `[RedshiftClientTypes.ReservedNodeConfigurationOption]` extension PaginatorSequence where Input == GetReservedNodeExchangeConfigurationOptionsInput, Output == GetReservedNodeExchangeConfigurationOptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReservedNodeExchangeConfigurationOptionsPaginated` + /// to access the nested member `[RedshiftClientTypes.ReservedNodeConfigurationOption]` + /// - Returns: `[RedshiftClientTypes.ReservedNodeConfigurationOption]` public func reservedNodeConfigurationOptionList() async throws -> [RedshiftClientTypes.ReservedNodeConfigurationOption] { return try await self.asyncCompactMap { item in item.reservedNodeConfigurationOptionList } } } - -/// Paginate over `[GetReservedNodeExchangeOfferingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReservedNodeExchangeOfferingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReservedNodeExchangeOfferingsOutputResponse` extension RedshiftClient { + /// Paginate over `[GetReservedNodeExchangeOfferingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReservedNodeExchangeOfferingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReservedNodeExchangeOfferingsOutputResponse` public func getReservedNodeExchangeOfferingsPaginated(input: GetReservedNodeExchangeOfferingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReservedNodeExchangeOfferingsInput.marker, outputKey: \GetReservedNodeExchangeOfferingsOutputResponse.marker, paginationFunction: self.getReservedNodeExchangeOfferings(input:)) } @@ -1082,10 +1050,10 @@ extension GetReservedNodeExchangeOfferingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getReservedNodeExchangeOfferingsPaginated` -/// to access the nested member `[RedshiftClientTypes.ReservedNodeOffering]` -/// - Returns: `[RedshiftClientTypes.ReservedNodeOffering]` extension PaginatorSequence where Input == GetReservedNodeExchangeOfferingsInput, Output == GetReservedNodeExchangeOfferingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReservedNodeExchangeOfferingsPaginated` + /// to access the nested member `[RedshiftClientTypes.ReservedNodeOffering]` + /// - Returns: `[RedshiftClientTypes.ReservedNodeOffering]` public func reservedNodeOfferings() async throws -> [RedshiftClientTypes.ReservedNodeOffering] { return try await self.asyncCompactMap { item in item.reservedNodeOfferings } } diff --git a/Sources/Services/AWSRedshiftData/Paginators.swift b/Sources/Services/AWSRedshiftData/Paginators.swift index 2a8573ccc8d..7ca9f8b47cb 100644 --- a/Sources/Services/AWSRedshiftData/Paginators.swift +++ b/Sources/Services/AWSRedshiftData/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeTableOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTableInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTableOutputResponse` extension RedshiftDataClient { + /// Paginate over `[DescribeTableOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTableInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTableOutputResponse` public func describeTablePaginated(input: DescribeTableInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTableInput.nextToken, outputKey: \DescribeTableOutputResponse.nextToken, paginationFunction: self.describeTable(input:)) } @@ -33,24 +32,23 @@ extension DescribeTableInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTablePaginated` -/// to access the nested member `[RedshiftDataClientTypes.ColumnMetadata]` -/// - Returns: `[RedshiftDataClientTypes.ColumnMetadata]` extension PaginatorSequence where Input == DescribeTableInput, Output == DescribeTableOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTablePaginated` + /// to access the nested member `[RedshiftDataClientTypes.ColumnMetadata]` + /// - Returns: `[RedshiftDataClientTypes.ColumnMetadata]` public func columnList() async throws -> [RedshiftDataClientTypes.ColumnMetadata] { return try await self.asyncCompactMap { item in item.columnList } } } - -/// Paginate over `[GetStatementResultOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetStatementResultInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetStatementResultOutputResponse` extension RedshiftDataClient { + /// Paginate over `[GetStatementResultOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetStatementResultInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetStatementResultOutputResponse` public func getStatementResultPaginated(input: GetStatementResultInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetStatementResultInput.nextToken, outputKey: \GetStatementResultOutputResponse.nextToken, paginationFunction: self.getStatementResult(input:)) } @@ -64,24 +62,23 @@ extension GetStatementResultInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getStatementResultPaginated` -/// to access the nested member `[[RedshiftDataClientTypes.Field]]` -/// - Returns: `[[RedshiftDataClientTypes.Field]]` extension PaginatorSequence where Input == GetStatementResultInput, Output == GetStatementResultOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getStatementResultPaginated` + /// to access the nested member `[[RedshiftDataClientTypes.Field]]` + /// - Returns: `[[RedshiftDataClientTypes.Field]]` public func records() async throws -> [[RedshiftDataClientTypes.Field]] { return try await self.asyncCompactMap { item in item.records } } } - -/// Paginate over `[ListDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` extension RedshiftDataClient { + /// Paginate over `[ListDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` public func listDatabasesPaginated(input: ListDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatabasesInput.nextToken, outputKey: \ListDatabasesOutputResponse.nextToken, paginationFunction: self.listDatabases(input:)) } @@ -100,24 +97,23 @@ extension ListDatabasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDatabasesInput, Output == ListDatabasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func databases() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.databases } } } - -/// Paginate over `[ListSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` extension RedshiftDataClient { + /// Paginate over `[ListSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` public func listSchemasPaginated(input: ListSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemasInput.nextToken, outputKey: \ListSchemasOutputResponse.nextToken, paginationFunction: self.listSchemas(input:)) } @@ -138,24 +134,23 @@ extension ListSchemasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListSchemasInput, Output == ListSchemasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func schemas() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[ListStatementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStatementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStatementsOutputResponse` extension RedshiftDataClient { + /// Paginate over `[ListStatementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStatementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStatementsOutputResponse` public func listStatementsPaginated(input: ListStatementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStatementsInput.nextToken, outputKey: \ListStatementsOutputResponse.nextToken, paginationFunction: self.listStatements(input:)) } @@ -172,24 +167,23 @@ extension ListStatementsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStatementsPaginated` -/// to access the nested member `[RedshiftDataClientTypes.StatementData]` -/// - Returns: `[RedshiftDataClientTypes.StatementData]` extension PaginatorSequence where Input == ListStatementsInput, Output == ListStatementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStatementsPaginated` + /// to access the nested member `[RedshiftDataClientTypes.StatementData]` + /// - Returns: `[RedshiftDataClientTypes.StatementData]` public func statements() async throws -> [RedshiftDataClientTypes.StatementData] { return try await self.asyncCompactMap { item in item.statements } } } - -/// Paginate over `[ListTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` extension RedshiftDataClient { + /// Paginate over `[ListTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` public func listTablesPaginated(input: ListTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTablesInput.nextToken, outputKey: \ListTablesOutputResponse.nextToken, paginationFunction: self.listTables(input:)) } @@ -211,10 +205,10 @@ extension ListTablesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` -/// to access the nested member `[RedshiftDataClientTypes.TableMember]` -/// - Returns: `[RedshiftDataClientTypes.TableMember]` extension PaginatorSequence where Input == ListTablesInput, Output == ListTablesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTablesPaginated` + /// to access the nested member `[RedshiftDataClientTypes.TableMember]` + /// - Returns: `[RedshiftDataClientTypes.TableMember]` public func tables() async throws -> [RedshiftDataClientTypes.TableMember] { return try await self.asyncCompactMap { item in item.tables } } diff --git a/Sources/Services/AWSRekognition/Paginators.swift b/Sources/Services/AWSRekognition/Paginators.swift index b4141591b7b..6e54243024a 100644 --- a/Sources/Services/AWSRekognition/Paginators.swift +++ b/Sources/Services/AWSRekognition/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeProjectsOutputResponse` extension RekognitionClient { + /// Paginate over `[DescribeProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeProjectsOutputResponse` public func describeProjectsPaginated(input: DescribeProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeProjectsInput.nextToken, outputKey: \DescribeProjectsOutputResponse.nextToken, paginationFunction: self.describeProjects(input:)) } @@ -26,24 +25,23 @@ extension DescribeProjectsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeProjectsPaginated` -/// to access the nested member `[RekognitionClientTypes.ProjectDescription]` -/// - Returns: `[RekognitionClientTypes.ProjectDescription]` extension PaginatorSequence where Input == DescribeProjectsInput, Output == DescribeProjectsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeProjectsPaginated` + /// to access the nested member `[RekognitionClientTypes.ProjectDescription]` + /// - Returns: `[RekognitionClientTypes.ProjectDescription]` public func projectDescriptions() async throws -> [RekognitionClientTypes.ProjectDescription] { return try await self.asyncCompactMap { item in item.projectDescriptions } } } - -/// Paginate over `[DescribeProjectVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeProjectVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeProjectVersionsOutputResponse` extension RekognitionClient { + /// Paginate over `[DescribeProjectVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeProjectVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeProjectVersionsOutputResponse` public func describeProjectVersionsPaginated(input: DescribeProjectVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeProjectVersionsInput.nextToken, outputKey: \DescribeProjectVersionsOutputResponse.nextToken, paginationFunction: self.describeProjectVersions(input:)) } @@ -59,24 +57,23 @@ extension DescribeProjectVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeProjectVersionsPaginated` -/// to access the nested member `[RekognitionClientTypes.ProjectVersionDescription]` -/// - Returns: `[RekognitionClientTypes.ProjectVersionDescription]` extension PaginatorSequence where Input == DescribeProjectVersionsInput, Output == DescribeProjectVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeProjectVersionsPaginated` + /// to access the nested member `[RekognitionClientTypes.ProjectVersionDescription]` + /// - Returns: `[RekognitionClientTypes.ProjectVersionDescription]` public func projectVersionDescriptions() async throws -> [RekognitionClientTypes.ProjectVersionDescription] { return try await self.asyncCompactMap { item in item.projectVersionDescriptions } } } - -/// Paginate over `[GetCelebrityRecognitionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCelebrityRecognitionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCelebrityRecognitionOutputResponse` extension RekognitionClient { + /// Paginate over `[GetCelebrityRecognitionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCelebrityRecognitionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCelebrityRecognitionOutputResponse` public func getCelebrityRecognitionPaginated(input: GetCelebrityRecognitionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCelebrityRecognitionInput.nextToken, outputKey: \GetCelebrityRecognitionOutputResponse.nextToken, paginationFunction: self.getCelebrityRecognition(input:)) } @@ -91,16 +88,15 @@ extension GetCelebrityRecognitionInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[GetContentModerationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetContentModerationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetContentModerationOutputResponse` extension RekognitionClient { + /// Paginate over `[GetContentModerationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetContentModerationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetContentModerationOutputResponse` public func getContentModerationPaginated(input: GetContentModerationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetContentModerationInput.nextToken, outputKey: \GetContentModerationOutputResponse.nextToken, paginationFunction: self.getContentModeration(input:)) } @@ -115,16 +111,15 @@ extension GetContentModerationInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[GetFaceDetectionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFaceDetectionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFaceDetectionOutputResponse` extension RekognitionClient { + /// Paginate over `[GetFaceDetectionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFaceDetectionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFaceDetectionOutputResponse` public func getFaceDetectionPaginated(input: GetFaceDetectionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFaceDetectionInput.nextToken, outputKey: \GetFaceDetectionOutputResponse.nextToken, paginationFunction: self.getFaceDetection(input:)) } @@ -138,16 +133,15 @@ extension GetFaceDetectionInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetFaceSearchOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFaceSearchInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFaceSearchOutputResponse` extension RekognitionClient { + /// Paginate over `[GetFaceSearchOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFaceSearchInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFaceSearchOutputResponse` public func getFaceSearchPaginated(input: GetFaceSearchInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFaceSearchInput.nextToken, outputKey: \GetFaceSearchOutputResponse.nextToken, paginationFunction: self.getFaceSearch(input:)) } @@ -162,16 +156,15 @@ extension GetFaceSearchInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[GetLabelDetectionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetLabelDetectionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetLabelDetectionOutputResponse` extension RekognitionClient { + /// Paginate over `[GetLabelDetectionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetLabelDetectionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetLabelDetectionOutputResponse` public func getLabelDetectionPaginated(input: GetLabelDetectionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetLabelDetectionInput.nextToken, outputKey: \GetLabelDetectionOutputResponse.nextToken, paginationFunction: self.getLabelDetection(input:)) } @@ -187,16 +180,15 @@ extension GetLabelDetectionInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[GetPersonTrackingOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetPersonTrackingInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetPersonTrackingOutputResponse` extension RekognitionClient { + /// Paginate over `[GetPersonTrackingOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetPersonTrackingInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetPersonTrackingOutputResponse` public func getPersonTrackingPaginated(input: GetPersonTrackingInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetPersonTrackingInput.nextToken, outputKey: \GetPersonTrackingOutputResponse.nextToken, paginationFunction: self.getPersonTracking(input:)) } @@ -211,16 +203,15 @@ extension GetPersonTrackingInput: ClientRuntime.PaginateToken { sortBy: self.sortBy )} } - -/// Paginate over `[GetSegmentDetectionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSegmentDetectionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSegmentDetectionOutputResponse` extension RekognitionClient { + /// Paginate over `[GetSegmentDetectionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSegmentDetectionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSegmentDetectionOutputResponse` public func getSegmentDetectionPaginated(input: GetSegmentDetectionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSegmentDetectionInput.nextToken, outputKey: \GetSegmentDetectionOutputResponse.nextToken, paginationFunction: self.getSegmentDetection(input:)) } @@ -234,16 +225,15 @@ extension GetSegmentDetectionInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetTextDetectionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTextDetectionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTextDetectionOutputResponse` extension RekognitionClient { + /// Paginate over `[GetTextDetectionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTextDetectionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTextDetectionOutputResponse` public func getTextDetectionPaginated(input: GetTextDetectionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTextDetectionInput.nextToken, outputKey: \GetTextDetectionOutputResponse.nextToken, paginationFunction: self.getTextDetection(input:)) } @@ -257,16 +247,15 @@ extension GetTextDetectionInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListCollectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCollectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCollectionsOutputResponse` extension RekognitionClient { + /// Paginate over `[ListCollectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCollectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCollectionsOutputResponse` public func listCollectionsPaginated(input: ListCollectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCollectionsInput.nextToken, outputKey: \ListCollectionsOutputResponse.nextToken, paginationFunction: self.listCollections(input:)) } @@ -280,24 +269,23 @@ extension ListCollectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCollectionsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListCollectionsInput, Output == ListCollectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCollectionsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func collectionIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.collectionIds } } } - -/// Paginate over `[ListDatasetEntriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetEntriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetEntriesOutputResponse` extension RekognitionClient { + /// Paginate over `[ListDatasetEntriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetEntriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetEntriesOutputResponse` public func listDatasetEntriesPaginated(input: ListDatasetEntriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetEntriesInput.nextToken, outputKey: \ListDatasetEntriesOutputResponse.nextToken, paginationFunction: self.listDatasetEntries(input:)) } @@ -316,24 +304,23 @@ extension ListDatasetEntriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetEntriesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDatasetEntriesInput, Output == ListDatasetEntriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetEntriesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func datasetEntries() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.datasetEntries } } } - -/// Paginate over `[ListDatasetLabelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatasetLabelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatasetLabelsOutputResponse` extension RekognitionClient { + /// Paginate over `[ListDatasetLabelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatasetLabelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatasetLabelsOutputResponse` public func listDatasetLabelsPaginated(input: ListDatasetLabelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatasetLabelsInput.nextToken, outputKey: \ListDatasetLabelsOutputResponse.nextToken, paginationFunction: self.listDatasetLabels(input:)) } @@ -348,24 +335,23 @@ extension ListDatasetLabelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatasetLabelsPaginated` -/// to access the nested member `[RekognitionClientTypes.DatasetLabelDescription]` -/// - Returns: `[RekognitionClientTypes.DatasetLabelDescription]` extension PaginatorSequence where Input == ListDatasetLabelsInput, Output == ListDatasetLabelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatasetLabelsPaginated` + /// to access the nested member `[RekognitionClientTypes.DatasetLabelDescription]` + /// - Returns: `[RekognitionClientTypes.DatasetLabelDescription]` public func datasetLabelDescriptions() async throws -> [RekognitionClientTypes.DatasetLabelDescription] { return try await self.asyncCompactMap { item in item.datasetLabelDescriptions } } } - -/// Paginate over `[ListFacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFacesOutputResponse` extension RekognitionClient { + /// Paginate over `[ListFacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFacesOutputResponse` public func listFacesPaginated(input: ListFacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFacesInput.nextToken, outputKey: \ListFacesOutputResponse.nextToken, paginationFunction: self.listFaces(input:)) } @@ -380,24 +366,23 @@ extension ListFacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFacesPaginated` -/// to access the nested member `[RekognitionClientTypes.Face]` -/// - Returns: `[RekognitionClientTypes.Face]` extension PaginatorSequence where Input == ListFacesInput, Output == ListFacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFacesPaginated` + /// to access the nested member `[RekognitionClientTypes.Face]` + /// - Returns: `[RekognitionClientTypes.Face]` public func faces() async throws -> [RekognitionClientTypes.Face] { return try await self.asyncCompactMap { item in item.faces } } } - -/// Paginate over `[ListProjectPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectPoliciesOutputResponse` extension RekognitionClient { + /// Paginate over `[ListProjectPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectPoliciesOutputResponse` public func listProjectPoliciesPaginated(input: ListProjectPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectPoliciesInput.nextToken, outputKey: \ListProjectPoliciesOutputResponse.nextToken, paginationFunction: self.listProjectPolicies(input:)) } @@ -412,24 +397,23 @@ extension ListProjectPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProjectPoliciesPaginated` -/// to access the nested member `[RekognitionClientTypes.ProjectPolicy]` -/// - Returns: `[RekognitionClientTypes.ProjectPolicy]` extension PaginatorSequence where Input == ListProjectPoliciesInput, Output == ListProjectPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProjectPoliciesPaginated` + /// to access the nested member `[RekognitionClientTypes.ProjectPolicy]` + /// - Returns: `[RekognitionClientTypes.ProjectPolicy]` public func projectPolicies() async throws -> [RekognitionClientTypes.ProjectPolicy] { return try await self.asyncCompactMap { item in item.projectPolicies } } } - -/// Paginate over `[ListStreamProcessorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStreamProcessorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStreamProcessorsOutputResponse` extension RekognitionClient { + /// Paginate over `[ListStreamProcessorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStreamProcessorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStreamProcessorsOutputResponse` public func listStreamProcessorsPaginated(input: ListStreamProcessorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStreamProcessorsInput.nextToken, outputKey: \ListStreamProcessorsOutputResponse.nextToken, paginationFunction: self.listStreamProcessors(input:)) } diff --git a/Sources/Services/AWSResiliencehub/Paginators.swift b/Sources/Services/AWSResiliencehub/Paginators.swift index dfcf0773ffa..4721f8de358 100644 --- a/Sources/Services/AWSResiliencehub/Paginators.swift +++ b/Sources/Services/AWSResiliencehub/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAlarmRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAlarmRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAlarmRecommendationsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAlarmRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAlarmRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAlarmRecommendationsOutputResponse` public func listAlarmRecommendationsPaginated(input: ListAlarmRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAlarmRecommendationsInput.nextToken, outputKey: \ListAlarmRecommendationsOutputResponse.nextToken, paginationFunction: self.listAlarmRecommendations(input:)) } @@ -25,16 +24,15 @@ extension ListAlarmRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppAssessmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppAssessmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppAssessmentsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppAssessmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppAssessmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppAssessmentsOutputResponse` public func listAppAssessmentsPaginated(input: ListAppAssessmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppAssessmentsInput.nextToken, outputKey: \ListAppAssessmentsOutputResponse.nextToken, paginationFunction: self.listAppAssessments(input:)) } @@ -53,16 +51,15 @@ extension ListAppAssessmentsInput: ClientRuntime.PaginateToken { reverseOrder: self.reverseOrder )} } - -/// Paginate over `[ListAppComponentCompliancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppComponentCompliancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppComponentCompliancesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppComponentCompliancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppComponentCompliancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppComponentCompliancesOutputResponse` public func listAppComponentCompliancesPaginated(input: ListAppComponentCompliancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppComponentCompliancesInput.nextToken, outputKey: \ListAppComponentCompliancesOutputResponse.nextToken, paginationFunction: self.listAppComponentCompliances(input:)) } @@ -76,16 +73,15 @@ extension ListAppComponentCompliancesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppComponentRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppComponentRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppComponentRecommendationsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppComponentRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppComponentRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppComponentRecommendationsOutputResponse` public func listAppComponentRecommendationsPaginated(input: ListAppComponentRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppComponentRecommendationsInput.nextToken, outputKey: \ListAppComponentRecommendationsOutputResponse.nextToken, paginationFunction: self.listAppComponentRecommendations(input:)) } @@ -99,16 +95,15 @@ extension ListAppComponentRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppsOutputResponse` public func listAppsPaginated(input: ListAppsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppsInput.nextToken, outputKey: \ListAppsOutputResponse.nextToken, paginationFunction: self.listApps(input:)) } @@ -123,16 +118,15 @@ extension ListAppsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppVersionResourceMappingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppVersionResourceMappingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionResourceMappingsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppVersionResourceMappingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppVersionResourceMappingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionResourceMappingsOutputResponse` public func listAppVersionResourceMappingsPaginated(input: ListAppVersionResourceMappingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppVersionResourceMappingsInput.nextToken, outputKey: \ListAppVersionResourceMappingsOutputResponse.nextToken, paginationFunction: self.listAppVersionResourceMappings(input:)) } @@ -147,16 +141,15 @@ extension ListAppVersionResourceMappingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAppVersionResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppVersionResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionResourcesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppVersionResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppVersionResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionResourcesOutputResponse` public func listAppVersionResourcesPaginated(input: ListAppVersionResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppVersionResourcesInput.nextToken, outputKey: \ListAppVersionResourcesOutputResponse.nextToken, paginationFunction: self.listAppVersionResources(input:)) } @@ -172,16 +165,15 @@ extension ListAppVersionResourcesInput: ClientRuntime.PaginateToken { resolutionId: self.resolutionId )} } - -/// Paginate over `[ListAppVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListAppVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppVersionsOutputResponse` public func listAppVersionsPaginated(input: ListAppVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppVersionsInput.nextToken, outputKey: \ListAppVersionsOutputResponse.nextToken, paginationFunction: self.listAppVersions(input:)) } @@ -195,16 +187,15 @@ extension ListAppVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRecommendationTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendationTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationTemplatesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListRecommendationTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendationTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationTemplatesOutputResponse` public func listRecommendationTemplatesPaginated(input: ListRecommendationTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendationTemplatesInput.nextToken, outputKey: \ListRecommendationTemplatesOutputResponse.nextToken, paginationFunction: self.listRecommendationTemplates(input:)) } @@ -222,16 +213,15 @@ extension ListRecommendationTemplatesInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListResiliencyPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResiliencyPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResiliencyPoliciesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListResiliencyPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResiliencyPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResiliencyPoliciesOutputResponse` public func listResiliencyPoliciesPaginated(input: ListResiliencyPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResiliencyPoliciesInput.nextToken, outputKey: \ListResiliencyPoliciesOutputResponse.nextToken, paginationFunction: self.listResiliencyPolicies(input:)) } @@ -245,16 +235,15 @@ extension ListResiliencyPoliciesInput: ClientRuntime.PaginateToken { policyName: self.policyName )} } - -/// Paginate over `[ListSopRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSopRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSopRecommendationsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListSopRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSopRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSopRecommendationsOutputResponse` public func listSopRecommendationsPaginated(input: ListSopRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSopRecommendationsInput.nextToken, outputKey: \ListSopRecommendationsOutputResponse.nextToken, paginationFunction: self.listSopRecommendations(input:)) } @@ -268,16 +257,15 @@ extension ListSopRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSuggestedResiliencyPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSuggestedResiliencyPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSuggestedResiliencyPoliciesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListSuggestedResiliencyPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSuggestedResiliencyPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSuggestedResiliencyPoliciesOutputResponse` public func listSuggestedResiliencyPoliciesPaginated(input: ListSuggestedResiliencyPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSuggestedResiliencyPoliciesInput.nextToken, outputKey: \ListSuggestedResiliencyPoliciesOutputResponse.nextToken, paginationFunction: self.listSuggestedResiliencyPolicies(input:)) } @@ -290,16 +278,15 @@ extension ListSuggestedResiliencyPoliciesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTestRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTestRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTestRecommendationsOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListTestRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTestRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTestRecommendationsOutputResponse` public func listTestRecommendationsPaginated(input: ListTestRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTestRecommendationsInput.nextToken, outputKey: \ListTestRecommendationsOutputResponse.nextToken, paginationFunction: self.listTestRecommendations(input:)) } @@ -313,16 +300,15 @@ extension ListTestRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListUnsupportedAppVersionResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUnsupportedAppVersionResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUnsupportedAppVersionResourcesOutputResponse` extension ResiliencehubClient { + /// Paginate over `[ListUnsupportedAppVersionResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUnsupportedAppVersionResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUnsupportedAppVersionResourcesOutputResponse` public func listUnsupportedAppVersionResourcesPaginated(input: ListUnsupportedAppVersionResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUnsupportedAppVersionResourcesInput.nextToken, outputKey: \ListUnsupportedAppVersionResourcesOutputResponse.nextToken, paginationFunction: self.listUnsupportedAppVersionResources(input:)) } diff --git a/Sources/Services/AWSResourceExplorer2/Paginators.swift b/Sources/Services/AWSResourceExplorer2/Paginators.swift index 0c0db92aee7..9428d011d79 100644 --- a/Sources/Services/AWSResourceExplorer2/Paginators.swift +++ b/Sources/Services/AWSResourceExplorer2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSupportedResourceTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSupportedResourceTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSupportedResourceTypesOutputResponse` extension ResourceExplorer2Client { + /// Paginate over `[ListSupportedResourceTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSupportedResourceTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSupportedResourceTypesOutputResponse` public func listSupportedResourceTypesPaginated(input: ListSupportedResourceTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSupportedResourceTypesInput.nextToken, outputKey: \ListSupportedResourceTypesOutputResponse.nextToken, paginationFunction: self.listSupportedResourceTypes(input:)) } @@ -25,24 +24,23 @@ extension ListSupportedResourceTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSupportedResourceTypesPaginated` -/// to access the nested member `[ResourceExplorer2ClientTypes.SupportedResourceType]` -/// - Returns: `[ResourceExplorer2ClientTypes.SupportedResourceType]` extension PaginatorSequence where Input == ListSupportedResourceTypesInput, Output == ListSupportedResourceTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSupportedResourceTypesPaginated` + /// to access the nested member `[ResourceExplorer2ClientTypes.SupportedResourceType]` + /// - Returns: `[ResourceExplorer2ClientTypes.SupportedResourceType]` public func resourceTypes() async throws -> [ResourceExplorer2ClientTypes.SupportedResourceType] { return try await self.asyncCompactMap { item in item.resourceTypes } } } - -/// Paginate over `[SearchOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchOutputResponse` extension ResourceExplorer2Client { + /// Paginate over `[SearchOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchOutputResponse` public func searchPaginated(input: SearchInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchInput.nextToken, outputKey: \SearchOutputResponse.nextToken, paginationFunction: self.search(input:)) } @@ -58,10 +56,10 @@ extension SearchInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchPaginated` -/// to access the nested member `[ResourceExplorer2ClientTypes.Resource]` -/// - Returns: `[ResourceExplorer2ClientTypes.Resource]` extension PaginatorSequence where Input == SearchInput, Output == SearchOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchPaginated` + /// to access the nested member `[ResourceExplorer2ClientTypes.Resource]` + /// - Returns: `[ResourceExplorer2ClientTypes.Resource]` public func resources() async throws -> [ResourceExplorer2ClientTypes.Resource] { return try await self.asyncCompactMap { item in item.resources } } diff --git a/Sources/Services/AWSResourceGroups/EndpointResolver.swift b/Sources/Services/AWSResourceGroups/EndpointResolver.swift index dd664e46f09..a86837f3d1d 100644 --- a/Sources/Services/AWSResourceGroups/EndpointResolver.swift +++ b/Sources/Services/AWSResourceGroups/EndpointResolver.swift @@ -7,7 +7,7 @@ public struct EndpointParams { /// Override the endpoint used to send this request public let endpoint: Swift.String? /// The AWS region used to dispatch the request. - public let region: Swift.String? + public let region: Swift.String /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. public let useDualStack: Swift.Bool /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. @@ -15,7 +15,7 @@ public struct EndpointParams { public init( endpoint: Swift.String? = nil, - region: Swift.String? = nil, + region: Swift.String, useDualStack: Swift.Bool = false, useFIPS: Swift.Bool = false ) @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://resource-groups.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSResourceGroups/Paginators.swift b/Sources/Services/AWSResourceGroups/Paginators.swift index efe05eb6206..73a3a49a65b 100644 --- a/Sources/Services/AWSResourceGroups/Paginators.swift +++ b/Sources/Services/AWSResourceGroups/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListGroupResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupResourcesOutputResponse` extension ResourceGroupsClient { + /// Paginate over `[ListGroupResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupResourcesOutputResponse` public func listGroupResourcesPaginated(input: ListGroupResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupResourcesInput.nextToken, outputKey: \ListGroupResourcesOutputResponse.nextToken, paginationFunction: self.listGroupResources(input:)) } @@ -28,15 +27,23 @@ extension ListGroupResourcesInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[ListGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` +extension PaginatorSequence where Input == ListGroupResourcesInput, Output == ListGroupResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupResourcesPaginated` + /// to access the nested member `[ResourceGroupsClientTypes.ResourceIdentifier]` + /// - Returns: `[ResourceGroupsClientTypes.ResourceIdentifier]` + public func resourceIdentifiers() async throws -> [ResourceGroupsClientTypes.ResourceIdentifier] { + return try await self.asyncCompactMap { item in item.resourceIdentifiers } + } +} extension ResourceGroupsClient { + /// Paginate over `[ListGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` public func listGroupsPaginated(input: ListGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsInput.nextToken, outputKey: \ListGroupsOutputResponse.nextToken, paginationFunction: self.listGroups(input:)) } @@ -51,15 +58,23 @@ extension ListGroupsInput: ClientRuntime.PaginateToken { )} } -/// Paginate over `[SearchResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchResourcesOutputResponse` +extension PaginatorSequence where Input == ListGroupsInput, Output == ListGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGroupsPaginated` + /// to access the nested member `[ResourceGroupsClientTypes.GroupIdentifier]` + /// - Returns: `[ResourceGroupsClientTypes.GroupIdentifier]` + public func groupIdentifiers() async throws -> [ResourceGroupsClientTypes.GroupIdentifier] { + return try await self.asyncCompactMap { item in item.groupIdentifiers } + } +} extension ResourceGroupsClient { + /// Paginate over `[SearchResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchResourcesOutputResponse` public func searchResourcesPaginated(input: SearchResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchResourcesInput.nextToken, outputKey: \SearchResourcesOutputResponse.nextToken, paginationFunction: self.searchResources(input:)) } @@ -73,3 +88,12 @@ extension SearchResourcesInput: ClientRuntime.PaginateToken { resourceQuery: self.resourceQuery )} } + +extension PaginatorSequence where Input == SearchResourcesInput, Output == SearchResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchResourcesPaginated` + /// to access the nested member `[ResourceGroupsClientTypes.ResourceIdentifier]` + /// - Returns: `[ResourceGroupsClientTypes.ResourceIdentifier]` + public func resourceIdentifiers() async throws -> [ResourceGroupsClientTypes.ResourceIdentifier] { + return try await self.asyncCompactMap { item in item.resourceIdentifiers } + } +} diff --git a/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift b/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift index 5762f180be6..0bbaedbfb6b 100644 --- a/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift +++ b/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift @@ -205,7 +205,7 @@ public struct ResourceGroupsClientLogHandlerFactory: ClientRuntime.SDKLogHandler } extension ResourceGroupsClient: ResourceGroupsClientProtocol { - /// Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration. For more information about constructing a resource query, see [Create a tag-based group in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). For more information about service configurations, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: + /// Creates a resource group with the specified name and description. You can optionally include either a resource query or a service configuration. For more information about constructing a resource query, see [Build queries and groups in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/getting_started-query.html) in the Resource Groups User Guide. For more information about service-linked groups and service configurations, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:CreateGroup public func createGroup(input: CreateGroupInput) async throws -> CreateGroupOutputResponse @@ -226,7 +226,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "createGroup") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -263,7 +266,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "deleteGroup") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -279,6 +285,41 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } + /// Retrieves the current status of optional features in Resource Groups. + public func getAccountSettings(input: GetAccountSettingsInput) async throws -> GetAccountSettingsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getAccountSettings") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "resource-groups") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "getAccountSettings") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + /// Returns information about a specified resource group. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GetGroup @@ -300,7 +341,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getGroup") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -316,7 +360,7 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } - /// Returns the service configuration associated with the specified resource group. For details about the service configuration syntax, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: + /// Retrieves the service configuration associated with the specified resource group. For details about the service configuration syntax, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GetGroupConfiguration public func getGroupConfiguration(input: GetGroupConfigurationInput) async throws -> GetGroupConfigurationOutputResponse @@ -337,7 +381,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getGroupConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -374,7 +421,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getGroupQuery") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -411,7 +461,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "getTags") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -424,7 +477,14 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } - /// Adds the specified resources to the specified group. Minimum permissions To run this command, you must have the following permissions: + /// Adds the specified resources to the specified group. You can use this operation with only resource groups that are configured with the following types: + /// + /// * AWS::EC2::HostManagement + /// + /// * AWS::EC2::CapacityReservationPool + /// + /// + /// Other resource group type and resource types aren't currently supported by this operation. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GroupResources public func groupResources(input: GroupResourcesInput) async throws -> GroupResourcesOutputResponse @@ -445,7 +505,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "groupResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -488,7 +551,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listGroupResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -504,7 +570,7 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } - /// Returns a list of existing resource groups in your account. Minimum permissions To run this command, you must have the following permissions: + /// Returns a list of existing Resource Groups in your account. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:ListGroups public func listGroups(input: ListGroupsInput) async throws -> ListGroupsOutputResponse @@ -525,7 +591,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "listGroups") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -563,7 +632,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "putGroupConfiguration") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -579,7 +651,7 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } - /// Returns a list of AWS resource identifiers that matches the specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation. Minimum permissions To run this command, you must have the following permissions: + /// Returns a list of Amazon Web Services resource identifiers that matches the specified query. The query uses the same format as a resource query in a [CreateGroup] or [UpdateGroupQuery] operation. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:SearchResources /// @@ -606,7 +678,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "searchResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -643,7 +718,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "tag") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -659,7 +737,7 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } - /// Removes the specified resources from the specified group. Minimum permissions To run this command, you must have the following permissions: + /// Removes the specified resources from the specified group. This operation works only with static groups that you populated using the [GroupResources] operation. It doesn't work with any resource groups that are automatically populated by tag-based or CloudFormation stack-based queries. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:UngroupResources public func ungroupResources(input: UngroupResourcesInput) async throws -> UngroupResourcesOutputResponse @@ -680,7 +758,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "ungroupResources") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -717,7 +798,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "untag") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -733,6 +817,44 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { return result } + /// Turns on or turns off optional features in Resource Groups. The preceding example shows that the request to turn on group lifecycle events is IN_PROGRESS. You can call the [GetAccountSettings] operation to check for completion by looking for GroupLifecycleEventsStatus to change to ACTIVE. + public func updateAccountSettings(input: UpdateAccountSettingsInput) async throws -> UpdateAccountSettingsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateAccountSettings") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "resource-groups") + .withSigningRegion(value: config.signingRegion) + var operation = ClientRuntime.OperationStack(id: "updateAccountSettings") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateAccountSettingsInput")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryerMiddleware(retryer: config.retryer)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .before, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + let result = try await operation.handleMiddleware(context: context.build(), input: input, next: client.getHandler()) + return result + } + /// Updates the description for an existing group. You cannot update the name of a resource group. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:UpdateGroup @@ -754,7 +876,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateGroup") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) @@ -791,7 +916,10 @@ extension ResourceGroupsClient: ResourceGroupsClientProtocol { var operation = ClientRuntime.OperationStack(id: "updateGroupQuery") operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) - let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + guard let region = config.region else { + throw SdkError.client(ClientError.unknownError(("Missing required parameter: Region"))) + } + let endpointParams = EndpointParams(endpoint: config.endpoint, region: region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) diff --git a/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift b/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift index f6dae3ceeeb..3aa84b8f3da 100644 --- a/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift +++ b/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift @@ -3,7 +3,7 @@ import AWSClientRuntime import ClientRuntime -/// AWS Resource Groups AWS Resource Groups lets you organize AWS resources such as Amazon EC2 instances, Amazon Relational Database Service databases, and Amazon S3 buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource Groups enable you to automate management tasks, such as those in AWS Systems Manager Automation documents, on tag-related resources in AWS Systems Manager. Groups of tagged resources also let you quickly view a custom console in AWS Systems Manager that shows AWS Config compliance and other monitoring data about member resources. To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs. For more information about Resource Groups, see the [AWS Resource Groups User Guide](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html). AWS Resource Groups uses a REST-compliant API that you can use to perform the following types of operations. +/// Resource Groups lets you organize Amazon Web Services resources such as Amazon Elastic Compute Cloud instances, Amazon Relational Database Service databases, and Amazon Simple Storage Service buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource Groups enable you to automate management tasks, such as those in Amazon Web Services Systems Manager Automation documents, on tag-related resources in Amazon Web Services Systems Manager. Groups of tagged resources also let you quickly view a custom console in Amazon Web Services Systems Manager that shows Config compliance and other monitoring data about member resources. To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs. For more information about Resource Groups, see the [Resource Groups User Guide](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html). Resource Groups uses a REST-compliant API that you can use to perform the following types of operations. /// /// * Create, Read, Update, and Delete (CRUD) operations on resource groups and resource query entities /// @@ -13,9 +13,9 @@ import ClientRuntime /// /// * Getting data about resources that are members of a group /// -/// * Searching AWS resources based on a resource query +/// * Searching Amazon Web Services resources based on a resource query public protocol ResourceGroupsClientProtocol { - /// Creates a resource group with the specified name and description. You can optionally include a resource query, or a service configuration. For more information about constructing a resource query, see [Create a tag-based group in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). For more information about service configurations, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: + /// Creates a resource group with the specified name and description. You can optionally include either a resource query or a service configuration. For more information about constructing a resource query, see [Build queries and groups in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/getting_started-query.html) in the Resource Groups User Guide. For more information about service-linked groups and service configurations, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:CreateGroup func createGroup(input: CreateGroupInput) async throws -> CreateGroupOutputResponse @@ -23,11 +23,13 @@ public protocol ResourceGroupsClientProtocol { /// /// * resource-groups:DeleteGroup func deleteGroup(input: DeleteGroupInput) async throws -> DeleteGroupOutputResponse + /// Retrieves the current status of optional features in Resource Groups. + func getAccountSettings(input: GetAccountSettingsInput) async throws -> GetAccountSettingsOutputResponse /// Returns information about a specified resource group. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GetGroup func getGroup(input: GetGroupInput) async throws -> GetGroupOutputResponse - /// Returns the service configuration associated with the specified resource group. For details about the service configuration syntax, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: + /// Retrieves the service configuration associated with the specified resource group. For details about the service configuration syntax, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GetGroupConfiguration func getGroupConfiguration(input: GetGroupConfigurationInput) async throws -> GetGroupConfigurationOutputResponse @@ -39,7 +41,14 @@ public protocol ResourceGroupsClientProtocol { /// /// * resource-groups:GetTags func getTags(input: GetTagsInput) async throws -> GetTagsOutputResponse - /// Adds the specified resources to the specified group. Minimum permissions To run this command, you must have the following permissions: + /// Adds the specified resources to the specified group. You can use this operation with only resource groups that are configured with the following types: + /// + /// * AWS::EC2::HostManagement + /// + /// * AWS::EC2::CapacityReservationPool + /// + /// + /// Other resource group type and resource types aren't currently supported by this operation. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:GroupResources func groupResources(input: GroupResourcesInput) async throws -> GroupResourcesOutputResponse @@ -53,7 +62,7 @@ public protocol ResourceGroupsClientProtocol { /// /// * tag:GetResources func listGroupResources(input: ListGroupResourcesInput) async throws -> ListGroupResourcesOutputResponse - /// Returns a list of existing resource groups in your account. Minimum permissions To run this command, you must have the following permissions: + /// Returns a list of existing Resource Groups in your account. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:ListGroups func listGroups(input: ListGroupsInput) async throws -> ListGroupsOutputResponse @@ -61,7 +70,7 @@ public protocol ResourceGroupsClientProtocol { /// /// * resource-groups:PutGroupConfiguration func putGroupConfiguration(input: PutGroupConfigurationInput) async throws -> PutGroupConfigurationOutputResponse - /// Returns a list of AWS resource identifiers that matches the specified query. The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery operation. Minimum permissions To run this command, you must have the following permissions: + /// Returns a list of Amazon Web Services resource identifiers that matches the specified query. The query uses the same format as a resource query in a [CreateGroup] or [UpdateGroupQuery] operation. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:SearchResources /// @@ -75,7 +84,7 @@ public protocol ResourceGroupsClientProtocol { /// /// * resource-groups:Tag func tag(input: TagInput) async throws -> TagOutputResponse - /// Removes the specified resources from the specified group. Minimum permissions To run this command, you must have the following permissions: + /// Removes the specified resources from the specified group. This operation works only with static groups that you populated using the [GroupResources] operation. It doesn't work with any resource groups that are automatically populated by tag-based or CloudFormation stack-based queries. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:UngroupResources func ungroupResources(input: UngroupResourcesInput) async throws -> UngroupResourcesOutputResponse @@ -83,6 +92,8 @@ public protocol ResourceGroupsClientProtocol { /// /// * resource-groups:Untag func untag(input: UntagInput) async throws -> UntagOutputResponse + /// Turns on or turns off optional features in Resource Groups. The preceding example shows that the request to turn on group lifecycle events is IN_PROGRESS. You can call the [GetAccountSettings] operation to check for completion by looking for GroupLifecycleEventsStatus to change to ACTIVE. + func updateAccountSettings(input: UpdateAccountSettingsInput) async throws -> UpdateAccountSettingsOutputResponse /// Updates the description for an existing group. You cannot update the name of a resource group. Minimum permissions To run this command, you must have the following permissions: /// /// * resource-groups:UpdateGroup diff --git a/Sources/Services/AWSResourceGroups/models/Models.swift b/Sources/Services/AWSResourceGroups/models/Models.swift index fa1ec5285dc..45841a02a72 100644 --- a/Sources/Services/AWSResourceGroups/models/Models.swift +++ b/Sources/Services/AWSResourceGroups/models/Models.swift @@ -2,6 +2,61 @@ import AWSClientRuntime import ClientRuntime +extension ResourceGroupsClientTypes.AccountSettings: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case groupLifecycleEventsDesiredStatus = "GroupLifecycleEventsDesiredStatus" + case groupLifecycleEventsStatus = "GroupLifecycleEventsStatus" + case groupLifecycleEventsStatusMessage = "GroupLifecycleEventsStatusMessage" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let groupLifecycleEventsDesiredStatus = self.groupLifecycleEventsDesiredStatus { + try encodeContainer.encode(groupLifecycleEventsDesiredStatus.rawValue, forKey: .groupLifecycleEventsDesiredStatus) + } + if let groupLifecycleEventsStatus = self.groupLifecycleEventsStatus { + try encodeContainer.encode(groupLifecycleEventsStatus.rawValue, forKey: .groupLifecycleEventsStatus) + } + if let groupLifecycleEventsStatusMessage = self.groupLifecycleEventsStatusMessage { + try encodeContainer.encode(groupLifecycleEventsStatusMessage, forKey: .groupLifecycleEventsStatusMessage) + } + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let groupLifecycleEventsDesiredStatusDecoded = try containerValues.decodeIfPresent(ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus.self, forKey: .groupLifecycleEventsDesiredStatus) + groupLifecycleEventsDesiredStatus = groupLifecycleEventsDesiredStatusDecoded + let groupLifecycleEventsStatusDecoded = try containerValues.decodeIfPresent(ResourceGroupsClientTypes.GroupLifecycleEventsStatus.self, forKey: .groupLifecycleEventsStatus) + groupLifecycleEventsStatus = groupLifecycleEventsStatusDecoded + let groupLifecycleEventsStatusMessageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .groupLifecycleEventsStatusMessage) + groupLifecycleEventsStatusMessage = groupLifecycleEventsStatusMessageDecoded + } +} + +extension ResourceGroupsClientTypes { + /// The Resource Groups settings for this Amazon Web Services account. + public struct AccountSettings: Swift.Equatable { + /// The desired target status of the group lifecycle events feature. If + public var groupLifecycleEventsDesiredStatus: ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus? + /// The current status of the group lifecycle events feature. + public var groupLifecycleEventsStatus: ResourceGroupsClientTypes.GroupLifecycleEventsStatus? + /// The text of any error message occurs during an attempt to turn group lifecycle events on or off. + public var groupLifecycleEventsStatusMessage: Swift.String? + + public init ( + groupLifecycleEventsDesiredStatus: ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus? = nil, + groupLifecycleEventsStatus: ResourceGroupsClientTypes.GroupLifecycleEventsStatus? = nil, + groupLifecycleEventsStatusMessage: Swift.String? = nil + ) + { + self.groupLifecycleEventsDesiredStatus = groupLifecycleEventsDesiredStatus + self.groupLifecycleEventsStatus = groupLifecycleEventsStatus + self.groupLifecycleEventsStatusMessage = groupLifecycleEventsStatusMessage + } + } + +} + extension BadRequestException { public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { if case .stream(let reader) = httpResponse.body, @@ -96,14 +151,14 @@ extension CreateGroupInput: ClientRuntime.URLPathProvider { } public struct CreateGroupInput: Swift.Equatable { - /// A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of [GroupConfigurationItem] elements. For details about the syntax of service configurations, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). A resource group can contain either a Configuration or a ResourceQuery, but not both. + /// A configuration associates the resource group with an Amazon Web Services service and specifies how the service can interact with the resources in the group. A configuration is an array of [GroupConfigurationItem] elements. For details about the syntax of service configurations, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). A resource group can contain either a Configuration or a ResourceQuery, but not both. public var configuration: [ResourceGroupsClientTypes.GroupConfigurationItem]? /// The description of the resource group. Descriptions can consist of letters, numbers, hyphens, underscores, periods, and spaces. public var description: Swift.String? - /// The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, numbers, hyphens, periods, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within each AWS Region in your AWS account. + /// The name of the group, which is the identifier of the group in other operations. You can't change the name of a resource group after you create it. A resource group name can consist of letters, numbers, hyphens, periods, and underscores. The name cannot start with AWS or aws; these are reserved. A resource group name must be unique within each Amazon Web Services Region in your Amazon Web Services account. /// This member is required. public var name: Swift.String? - /// The resource query that determines which AWS resources are members of this group. For more information about resource queries, see [Create a tag-based group in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). A resource group can contain either a ResourceQuery or a Configuration, but not both. + /// The resource query that determines which Amazon Web Services resources are members of this group. For more information about resource queries, see [Create a tag-based group in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). A resource group can contain either a ResourceQuery or a Configuration, but not both. public var resourceQuery: ResourceGroupsClientTypes.ResourceQuery? /// The tags to add to the group. A tag is key-value pair string. public var tags: [Swift.String:Swift.String]? @@ -226,7 +281,7 @@ extension CreateGroupOutputResponse: ClientRuntime.HttpResponseBinding { public struct CreateGroupOutputResponse: Swift.Equatable { /// The description of the resource group. public var group: ResourceGroupsClientTypes.Group? - /// The service configuration associated with the resource group. For details about the syntax of a service configuration, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). + /// The service configuration associated with the resource group. For details about the syntax of a service configuration, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). public var groupConfiguration: ResourceGroupsClientTypes.GroupConfiguration? /// The resource query associated with the group. For more information about resource queries, see [Create a tag-based group in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag). public var resourceQuery: ResourceGroupsClientTypes.ResourceQuery? @@ -524,6 +579,97 @@ extension ForbiddenExceptionBody: Swift.Decodable { } } +extension GetAccountSettingsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/get-account-settings" + } +} + +public struct GetAccountSettingsInput: Swift.Equatable { + + public init () { } +} + +struct GetAccountSettingsInputBody: Swift.Equatable { +} + +extension GetAccountSettingsInputBody: Swift.Decodable { + + public init (from decoder: Swift.Decoder) throws { + } +} + +extension GetAccountSettingsOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension GetAccountSettingsOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "BadRequestException" : self = .badRequestException(try BadRequestException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ForbiddenException" : self = .forbiddenException(try ForbiddenException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerErrorException" : self = .internalServerErrorException(try InternalServerErrorException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "MethodNotAllowedException" : self = .methodNotAllowedException(try MethodNotAllowedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "TooManyRequestsException" : self = .tooManyRequestsException(try TooManyRequestsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum GetAccountSettingsOutputError: Swift.Error, Swift.Equatable { + case badRequestException(BadRequestException) + case forbiddenException(ForbiddenException) + case internalServerErrorException(InternalServerErrorException) + case methodNotAllowedException(MethodNotAllowedException) + case tooManyRequestsException(TooManyRequestsException) + case unknown(UnknownAWSHttpServiceError) +} + +extension GetAccountSettingsOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: GetAccountSettingsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.accountSettings = output.accountSettings + } else { + self.accountSettings = nil + } + } +} + +public struct GetAccountSettingsOutputResponse: Swift.Equatable { + /// The current settings for the optional features in Resource Groups. + public var accountSettings: ResourceGroupsClientTypes.AccountSettings? + + public init ( + accountSettings: ResourceGroupsClientTypes.AccountSettings? = nil + ) + { + self.accountSettings = accountSettings + } +} + +struct GetAccountSettingsOutputResponseBody: Swift.Equatable { + let accountSettings: ResourceGroupsClientTypes.AccountSettings? +} + +extension GetAccountSettingsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountSettings = "AccountSettings" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountSettingsDecoded = try containerValues.decodeIfPresent(ResourceGroupsClientTypes.AccountSettings.self, forKey: .accountSettings) + accountSettings = accountSettingsDecoded + } +} + extension GetGroupConfigurationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case group = "Group" @@ -544,7 +690,7 @@ extension GetGroupConfigurationInput: ClientRuntime.URLPathProvider { } public struct GetGroupConfigurationInput: Swift.Equatable { - /// The name or the ARN of the resource group. + /// The name or the ARN of the resource group for which you want to retrive the service configuration. public var group: Swift.String? public init ( @@ -617,7 +763,7 @@ extension GetGroupConfigurationOutputResponse: ClientRuntime.HttpResponseBinding } public struct GetGroupConfigurationOutputResponse: Swift.Equatable { - /// The service configuration associated with the specified group. For details about the service configuration syntax, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). + /// A structure that describes the service configuration attached with the specified group. For details about the service configuration syntax, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). public var groupConfiguration: ResourceGroupsClientTypes.GroupConfiguration? public init ( @@ -750,7 +896,7 @@ extension GetGroupOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GetGroupOutputResponse: Swift.Equatable { - /// A full description of the resource group. + /// A structure that contains the metadata details for the specified resource group. Use [GetGroupQuery] and [GetGroupConfiguration] to get those additional details of the resource group. public var group: ResourceGroupsClientTypes.Group? public init ( @@ -1065,11 +1211,11 @@ extension ResourceGroupsClientTypes.Group: Swift.Codable { } extension ResourceGroupsClientTypes { - /// A resource group that contains AWS resources. You can assign resources to the group by associating either of the following elements with the group: + /// A resource group that contains Amazon Web Services resources. You can assign resources to the group by associating either of the following elements with the group: /// - /// * [ResourceQuery] - Use a resource query to specify a set of tag keys and values. All resources in the same AWS Region and AWS account that have those keys with the same values are included in the group. You can add a resource query when you create the group, or later by using the [PutGroupConfiguration] operation. + /// * [ResourceQuery] - Use a resource query to specify a set of tag keys and values. All resources in the same Amazon Web Services Region and Amazon Web Services account that have those keys with the same values are included in the group. You can add a resource query when you create the group, or later by using the [PutGroupConfiguration] operation. /// - /// * [GroupConfiguration] - Use a service configuration to associate the group with an AWS service. The configuration specifies which resource types can be included in the group. + /// * [GroupConfiguration] - Use a service configuration to associate the group with an Amazon Web Services service. The configuration specifies which resource types can be included in the group. public struct Group: Swift.Equatable { /// The description of the resource group. public var description: Swift.String? @@ -1156,7 +1302,7 @@ extension ResourceGroupsClientTypes.GroupConfiguration: Swift.Codable { } extension ResourceGroupsClientTypes { - /// A service configuration associated with a resource group. The configuration options are determined by the AWS service that defines the Type, and specifies which resources can be included in the group. You can add a service configuration when you create the group by using [CreateGroup], or later by using the [PutGroupConfiguration] operation. For details about group service configuration syntax, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). + /// A service configuration associated with a resource group. The configuration options are determined by the Amazon Web Services service that defines the Type, and specifies which resources can be included in the group. You can add a service configuration when you create the group by using [CreateGroup], or later by using the [PutGroupConfiguration] operation. For details about group service configuration syntax, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). public struct GroupConfiguration: Swift.Equatable { /// The configuration currently associated with the group and in effect. public var configuration: [ResourceGroupsClientTypes.GroupConfigurationItem]? @@ -1470,6 +1616,76 @@ extension ResourceGroupsClientTypes { } +extension ResourceGroupsClientTypes { + public enum GroupLifecycleEventsDesiredStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case inactive + case sdkUnknown(Swift.String) + + public static var allCases: [GroupLifecycleEventsDesiredStatus] { + return [ + .active, + .inactive, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .inactive: return "INACTIVE" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = GroupLifecycleEventsDesiredStatus(rawValue: rawValue) ?? GroupLifecycleEventsDesiredStatus.sdkUnknown(rawValue) + } + } +} + +extension ResourceGroupsClientTypes { + public enum GroupLifecycleEventsStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case active + case error + case inactive + case inProgress + case sdkUnknown(Swift.String) + + public static var allCases: [GroupLifecycleEventsStatus] { + return [ + .active, + .error, + .inactive, + .inProgress, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .active: return "ACTIVE" + case .error: return "ERROR" + case .inactive: return "INACTIVE" + case .inProgress: return "IN_PROGRESS" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = GroupLifecycleEventsStatus(rawValue: rawValue) ?? GroupLifecycleEventsStatus.sdkUnknown(rawValue) + } + } +} + extension ResourceGroupsClientTypes.GroupQuery: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case groupName = "GroupName" @@ -1496,12 +1712,12 @@ extension ResourceGroupsClientTypes.GroupQuery: Swift.Codable { } extension ResourceGroupsClientTypes { - /// A mapping of a query attached to a resource group that determines the AWS resources that are members of the group. + /// A mapping of a query attached to a resource group that determines the Amazon Web Services resources that are members of the group. public struct GroupQuery: Swift.Equatable { /// The name of the resource group that is associated with the specified resource query. /// This member is required. public var groupName: Swift.String? - /// The resource query that determines which AWS resources are members of the associated resource group. + /// The resource query that determines which Amazon Web Services resources are members of the associated resource group. /// This member is required. public var resourceQuery: ResourceGroupsClientTypes.ResourceQuery? @@ -1547,7 +1763,7 @@ public struct GroupResourcesInput: Swift.Equatable { /// The name or the ARN of the resource group to add resources to. /// This member is required. public var group: Swift.String? - /// The list of ARNs for resources to be added to the group. + /// The list of ARNs of the resources to be added to the group. /// This member is required. public var resourceArns: [Swift.String]? @@ -1640,11 +1856,11 @@ extension GroupResourcesOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GroupResourcesOutputResponse: Swift.Equatable { - /// A list of ARNs of any resources that failed to be added to the group by this operation. + /// A list of ARNs of any resources that this operation failed to add to the group. public var failed: [ResourceGroupsClientTypes.FailedResource]? - /// A list of ARNs of any resources that are still in the process of being added to the group by this operation. These pending additions continue asynchronously. You can check the status of pending additions by using the [ListGroupResources] operation, and checking the Resources array in the response and the Status field of each object in that array. + /// A list of ARNs of any resources that this operation is still in the process adding to the group. These pending additions continue asynchronously. You can check the status of pending additions by using the [ListGroupResources] operation, and checking the Resources array in the response and the Status field of each object in that array. public var pending: [ResourceGroupsClientTypes.PendingResource]? - /// A list of ARNs of resources that were successfully added to the group by this operation. + /// A list of ARNs of the resources that this operation successfully added to the group. public var succeeded: [Swift.String]? public init ( @@ -1806,7 +2022,7 @@ public struct ListGroupResourcesInput: Swift.Equatable { /// * resource-type - Filter resources by their type. Specify up to five resource types in the format AWS::ServiceCode::ResourceType. For example, AWS::EC2::Instance, or AWS::S3::Bucket. /// /// - /// When you specify a resource-type filter for ListGroupResources, AWS Resource Groups validates your filter resource types against the types that are defined in the query associated with the group. For example, if a group contains only S3 buckets because its query specifies only that resource type, but your resource-type filter includes EC2 instances, AWS Resource Groups does not filter for EC2 instances. In this case, a ListGroupResources request returns a BadRequestException error with a message similar to the following: The resource types specified as filters in the request are not valid. The error includes a list of resource types that failed the validation because they are not part of the query associated with the group. This validation doesn't occur when the group query specifies AWS::AllSupported, because a group based on such a query can contain any of the allowed resource types for the query type (tag-based or AWS CloudFormation stack-based queries). + /// When you specify a resource-type filter for ListGroupResources, Resource Groups validates your filter resource types against the types that are defined in the query associated with the group. For example, if a group contains only S3 buckets because its query specifies only that resource type, but your resource-type filter includes EC2 instances, AWS Resource Groups does not filter for EC2 instances. In this case, a ListGroupResources request returns a BadRequestException error with a message similar to the following: The resource types specified as filters in the request are not valid. The error includes a list of resource types that failed the validation because they are not part of the query associated with the group. This validation doesn't occur when the group query specifies AWS::AllSupported, because a group based on such a query can contain any of the allowed resource types for the query type (tag-based or Amazon CloudFront stack-based queries). public var filters: [ResourceGroupsClientTypes.ResourceFilter]? /// The name or the ARN of the resource group public var group: Swift.String? @@ -2099,9 +2315,9 @@ public struct ListGroupsInput: Swift.Equatable { /// /// * configuration-type - Filter the results to include only those groups that have the specified configuration types attached. The current supported values are: /// - /// * AWS:EC2::CapacityReservationPool + /// * AWS::EC2::CapacityReservationPool /// - /// * AWS:EC2::HostManagement + /// * AWS::EC2::HostManagement public var filters: [ResourceGroupsClientTypes.GroupFilter]? /// The total number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value that is specific to the operation. If additional items exist beyond the maximum you specify, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results. Note that the service might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results. public var maxResults: Swift.Int? @@ -2421,7 +2637,7 @@ extension PutGroupConfigurationInput: ClientRuntime.URLPathProvider { } public struct PutGroupConfigurationInput: Swift.Equatable { - /// The new configuration to associate with the specified group. A configuration associates the resource group with an AWS service and specifies how the service can interact with the resources in the group. A configuration is an array of [GroupConfigurationItem] elements. For information about the syntax of a service configuration, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). A resource group can contain either a Configuration or a ResourceQuery, but not both. + /// The new configuration to associate with the specified group. A configuration associates the resource group with an Amazon Web Services service and specifies how the service can interact with the resources in the group. A configuration is an array of [GroupConfigurationItem] elements. For information about the syntax of a service configuration, see [Service configurations for Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html). A resource group can contain either a Configuration or a ResourceQuery, but not both. public var configuration: [ResourceGroupsClientTypes.GroupConfigurationItem]? /// The name or ARN of the resource group with the configuration that you want to update. public var group: Swift.String? @@ -2533,11 +2749,11 @@ extension ResourceGroupsClientTypes.QueryError: Swift.Codable { } extension ResourceGroupsClientTypes { - /// A two-part error structure that can occur in ListGroupResources or SearchResources operations on CloudFormation stack-based queries. The error occurs if the CloudFormation stack on which the query is based either does not exist, or has a status that renders the stack inactive. A QueryError occurrence does not necessarily mean that AWS Resource Groups could not complete the operation, but the resulting group might have no member resources. + /// A two-part error structure that can occur in ListGroupResources or SearchResources operations on CloudFront stack-based queries. The error occurs if the CloudFront stack on which the query is based either does not exist, or has a status that renders the stack inactive. A QueryError occurrence does not necessarily mean that Resource Groups could not complete the operation, but the resulting group might have no member resources. public struct QueryError: Swift.Equatable { - /// Possible values are CLOUDFORMATION_STACK_INACTIVE and CLOUDFORMATION_STACK_NOT_EXISTING. + /// Specifies the error code that was raised. public var errorCode: ResourceGroupsClientTypes.QueryErrorCode? - /// A message that explains the ErrorCode value. Messages might state that the specified CloudFormation stack does not exist (or no longer exists). For CLOUDFORMATION_STACK_INACTIVE, the message typically states that the CloudFormation stack has a status that is not (or no longer) active, such as CREATE_FAILED. + /// A message that explains the ErrorCode value. Messages might state that the specified CloudFront stack does not exist (or no longer exists). For CLOUDFORMATION_STACK_INACTIVE, the message typically states that the CloudFront stack has a status that is not (or no longer) active, such as CREATE_FAILED. public var message: Swift.String? public init ( @@ -2556,12 +2772,14 @@ extension ResourceGroupsClientTypes { public enum QueryErrorCode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case cloudformationStackInactive case cloudformationStackNotExisting + case cloudformationStackUnassumableRole case sdkUnknown(Swift.String) public static var allCases: [QueryErrorCode] { return [ .cloudformationStackInactive, .cloudformationStackNotExisting, + .cloudformationStackUnassumableRole, .sdkUnknown("") ] } @@ -2573,6 +2791,7 @@ extension ResourceGroupsClientTypes { switch self { case .cloudformationStackInactive: return "CLOUDFORMATION_STACK_INACTIVE" case .cloudformationStackNotExisting: return "CLOUDFORMATION_STACK_NOT_EXISTING" + case .cloudformationStackUnassumableRole: return "CLOUDFORMATION_STACK_UNASSUMABLE_ROLE" case let .sdkUnknown(s): return s } } @@ -2775,36 +2994,43 @@ extension ResourceGroupsClientTypes.ResourceQuery: Swift.Codable { } extension ResourceGroupsClientTypes { - /// The query that is used to define a resource group or a search for resources. A query specifies both a query type and a query string as a JSON object. See the examples section for example JSON strings. The examples that follow are shown as standard JSON strings. If you include such a string as a parameter to the AWS CLI or an SDK API, you might need to 'escape' the string into a single line. For example, see the [Quoting strings](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) in the AWS CLI User Guide. Example 1 The following generic example shows a resource query JSON string that includes only resources that meet the following criteria: - /// - /// * The resource type must be either resource_type1 or resource_type2. - /// - /// * The resource must have a tag Key1 with a value of either ValueA or ValueB. - /// - /// * The resource must have a tag Key2 with a value of either ValueC or ValueD. - /// - /// - /// { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1", "resource_type2"], "TagFilters": [ { "Key": "Key1", "Values": ["ValueA","ValueB"] }, { "Key":"Key2", "Values":["ValueC","ValueD"] } ] } } This has the equivalent "shortcut" syntax of the following: { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1", "resource_type2"], "TagFilters": [ { "Key1": ["ValueA","ValueB"] }, { "Key2": ["ValueC","ValueD"] } ] } } Example 2 The following example shows a resource query JSON string that includes only Amazon EC2 instances that are tagged Stage with a value of Test. { "Type": "TAG_FILTERS_1_0", "Query": "{ "ResourceTypeFilters": "AWS::EC2::Instance", "TagFilters": { "Stage": "Test" } } } Example 3 The following example shows a resource query JSON string that includes resource of any supported type as long as it is tagged Stage with a value of Prod. { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": "AWS::AllSupported", "TagFilters": { "Stage": "Prod" } } } Example 4 The following example shows a resource query JSON string that includes only Amazon EC2 instances and Amazon S3 buckets that are part of the specified AWS CloudFormation stack. { "Type": "CLOUDFORMATION_STACK_1_0", "Query": { "ResourceTypeFilters": [ "AWS::EC2::Instance", "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/AWStestuseraccount/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE" } } + /// The query you can use to define a resource group or a search for resources. A ResourceQuery specifies both a query Type and a Query string as JSON string objects. See the examples section for example JSON strings. For more information about creating a resource group with a resource query, see [Build queries and groups in Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html) in the Resource Groups User Guide When you combine all of the elements together into a single string, any double quotes that are embedded inside another double quote pair must be escaped by preceding the embedded double quote with a backslash character (\). For example, a complete ResourceQuery parameter must be formatted like the following CLI parameter example: --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}' In the preceding example, all of the double quote characters in the value part of the Query element must be escaped because the value itself is surrounded by double quotes. For more information, see [Quoting strings](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) in the Command Line Interface User Guide. For the complete list of resource types that you can use in the array value for ResourceTypeFilters, see [Resources you can use with Resource Groups and Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html) in the Resource Groups User Guide. For example: "ResourceTypeFilters":["AWS::S3::Bucket", "AWS::EC2::Instance"] public struct ResourceQuery: Swift.Equatable { - /// The query that defines a group or a search. - /// This member is required. - public var query: Swift.String? - /// The type of the query. You can use the following values: + /// The query that defines a group or a search. The contents depends on the value of the Type element. /// - /// * CLOUDFORMATION_STACK_1_0: Specifies that the Query contains an ARN for a CloudFormation stack. + /// * ResourceTypeFilters – Applies to all ResourceQuery objects of either Type. This element contains one of the following two items: /// - /// * TAG_FILTERS_1_0: Specifies that the Query parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to the [GetResources](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) operation, but uses only the [ ResourceTypeFilters](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters) and [TagFilters](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters) fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches any of the specified values. For example, consider the following sample query for resources that have two tags, Stage and Version, with two values each: [{"Stage":["Test","Deploy"]},{"Version":["1","2"]}] The results of this query could include the following. + /// * The value AWS::AllSupported. This causes the ResourceQuery to match resources of any resource type that also match the query. /// - /// * An EC2 instance that has the following two tags: {"Stage":"Deploy"}, and {"Version":"2"} + /// * A list (a JSON array) of resource type identifiers that limit the query to only resources of the specified types. For the complete list of resource types that you can use in the array value for ResourceTypeFilters, see [Resources you can use with Resource Groups and Tag Editor](https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html) in the Resource Groups User Guide. + /// + /// + /// Example: "ResourceTypeFilters": ["AWS::AllSupported"] or "ResourceTypeFilters": ["AWS::EC2::Instance", "AWS::S3::Bucket"] + /// + /// * TagFilters – applicable only if Type = TAG_FILTERS_1_0. The Query contains a JSON string that represents a collection of simple tag filters. The JSON string uses a syntax similar to the [GetResources](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) operation, but uses only the [ ResourceTypeFilters](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters) and [TagFilters](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters) fields. If you specify more than one tag key, only resources that match all tag keys, and at least one value of each specified tag key, are returned in your query. If you specify more than one value for a tag key, a resource matches the filter if it has a tag key value that matches any of the specified values. For example, consider the following sample query for resources that have two tags, Stage and Version, with two values each: [{"Stage":["Test","Deploy"]},{"Version":["1","2"]}] The results of this resource query could include the following. + /// + /// * An Amazon EC2 instance that has the following two tags: {"Stage":"Deploy"}, and {"Version":"2"} /// /// * An S3 bucket that has the following two tags: {"Stage":"Test"}, and {"Version":"1"} /// /// - /// The query would not include the following items in the results, however. + /// The resource query results would not include the following items in the results, however. /// - /// * An EC2 instance that has only the following tag: {"Stage":"Deploy"}. The instance does not have all of the tag keys specified in the filter, so it is excluded from the results. + /// * An Amazon EC2 instance that has only the following tag: {"Stage":"Deploy"}. The instance does not have all of the tag keys specified in the filter, so it is excluded from the results. /// /// * An RDS database that has the following two tags: {"Stage":"Archived"} and {"Version":"4"} The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter. + /// + /// + /// Example: "TagFilters": [ { "Key": "Stage", "Values": [ "Gamma", "Beta" ] } + /// + /// * StackIdentifier – applicable only if Type = CLOUDFORMATION_STACK_1_0. The value of this parameter is the Amazon Resource Name (ARN) of the CloudFormation stack whose resources you want included in the group. + /// This member is required. + public var query: Swift.String? + /// The type of the query to perform. This can have one of two values: + /// + /// * CLOUDFORMATION_STACK_1_0: Specifies that you want the group to contain the members of an CloudFormation stack. The Query contains a StackIdentifier element with an ARN for a CloudFormation stack. + /// + /// * TAG_FILTERS_1_0: Specifies that you want the group to include resource that have tags that match the query. /// This member is required. public var type: ResourceGroupsClientTypes.QueryType? @@ -3008,7 +3234,11 @@ extension SearchResourcesOutputResponse: ClientRuntime.HttpResponseBinding { public struct SearchResourcesOutputResponse: Swift.Equatable { /// If present, indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. public var nextToken: Swift.String? - /// A list of QueryError objects. Each error is an object that contains ErrorCode and Message structures. Possible values for ErrorCode are CLOUDFORMATION_STACK_INACTIVE and CLOUDFORMATION_STACK_NOT_EXISTING. + /// A list of QueryError objects. Each error is an object that contains ErrorCode and Message structures. Possible values for ErrorCode: + /// + /// * CLOUDFORMATION_STACK_INACTIVE + /// + /// * CLOUDFORMATION_STACK_NOT_EXISTING public var queryErrors: [ResourceGroupsClientTypes.QueryError]? /// The ARNs and resource types of resources that are members of the group that you specified. public var resourceIdentifiers: [ResourceGroupsClientTypes.ResourceIdentifier]? @@ -3684,6 +3914,124 @@ extension UntagOutputResponseBody: Swift.Decodable { } } +extension UpdateAccountSettingsInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case groupLifecycleEventsDesiredStatus = "GroupLifecycleEventsDesiredStatus" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let groupLifecycleEventsDesiredStatus = self.groupLifecycleEventsDesiredStatus { + try encodeContainer.encode(groupLifecycleEventsDesiredStatus.rawValue, forKey: .groupLifecycleEventsDesiredStatus) + } + } +} + +extension UpdateAccountSettingsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/update-account-settings" + } +} + +public struct UpdateAccountSettingsInput: Swift.Equatable { + /// Specifies whether you want to turn [group lifecycle events](https://docs.aws.amazon.com/ARG/latest/userguide/monitor-groups.html) on or off. + public var groupLifecycleEventsDesiredStatus: ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus? + + public init ( + groupLifecycleEventsDesiredStatus: ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus? = nil + ) + { + self.groupLifecycleEventsDesiredStatus = groupLifecycleEventsDesiredStatus + } +} + +struct UpdateAccountSettingsInputBody: Swift.Equatable { + let groupLifecycleEventsDesiredStatus: ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus? +} + +extension UpdateAccountSettingsInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case groupLifecycleEventsDesiredStatus = "GroupLifecycleEventsDesiredStatus" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let groupLifecycleEventsDesiredStatusDecoded = try containerValues.decodeIfPresent(ResourceGroupsClientTypes.GroupLifecycleEventsDesiredStatus.self, forKey: .groupLifecycleEventsDesiredStatus) + groupLifecycleEventsDesiredStatus = groupLifecycleEventsDesiredStatusDecoded + } +} + +extension UpdateAccountSettingsOutputError: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + let errorDetails = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.headers.value(for: X_AMZN_REQUEST_ID_HEADER) + try self.init(errorType: errorDetails.errorType, httpResponse: httpResponse, decoder: decoder, message: errorDetails.errorMessage, requestID: requestID) + } +} + +extension UpdateAccountSettingsOutputError { + public init(errorType: Swift.String?, httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) throws { + switch errorType { + case "BadRequestException" : self = .badRequestException(try BadRequestException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "ForbiddenException" : self = .forbiddenException(try ForbiddenException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "InternalServerErrorException" : self = .internalServerErrorException(try InternalServerErrorException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "MethodNotAllowedException" : self = .methodNotAllowedException(try MethodNotAllowedException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + case "TooManyRequestsException" : self = .tooManyRequestsException(try TooManyRequestsException(httpResponse: httpResponse, decoder: decoder, message: message, requestID: requestID)) + default : self = .unknown(UnknownAWSHttpServiceError(httpResponse: httpResponse, message: message, requestID: requestID, errorType: errorType)) + } + } +} + +public enum UpdateAccountSettingsOutputError: Swift.Error, Swift.Equatable { + case badRequestException(BadRequestException) + case forbiddenException(ForbiddenException) + case internalServerErrorException(InternalServerErrorException) + case methodNotAllowedException(MethodNotAllowedException) + case tooManyRequestsException(TooManyRequestsException) + case unknown(UnknownAWSHttpServiceError) +} + +extension UpdateAccountSettingsOutputResponse: ClientRuntime.HttpResponseBinding { + public init (httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) throws { + if case .stream(let reader) = httpResponse.body, + let responseDecoder = decoder { + let data = reader.toBytes().getData() + let output: UpdateAccountSettingsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.accountSettings = output.accountSettings + } else { + self.accountSettings = nil + } + } +} + +public struct UpdateAccountSettingsOutputResponse: Swift.Equatable { + /// A structure that displays the status of the optional features in the account. + public var accountSettings: ResourceGroupsClientTypes.AccountSettings? + + public init ( + accountSettings: ResourceGroupsClientTypes.AccountSettings? = nil + ) + { + self.accountSettings = accountSettings + } +} + +struct UpdateAccountSettingsOutputResponseBody: Swift.Equatable { + let accountSettings: ResourceGroupsClientTypes.AccountSettings? +} + +extension UpdateAccountSettingsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountSettings = "AccountSettings" + } + + public init (from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountSettingsDecoded = try containerValues.decodeIfPresent(ResourceGroupsClientTypes.AccountSettings.self, forKey: .accountSettings) + accountSettings = accountSettingsDecoded + } +} + extension UpdateGroupInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case description = "Description" @@ -3862,7 +4210,7 @@ public struct UpdateGroupQueryInput: Swift.Equatable { /// Don't use this parameter. Use Group instead. @available(*, deprecated, message: "This field is deprecated, use Group instead.") public var groupName: Swift.String? - /// The resource query to determine which AWS resources are members of this resource group. A resource group can contain either a Configuration or a ResourceQuery, but not both. + /// The resource query to determine which Amazon Web Services resources are members of this resource group. A resource group can contain either a Configuration or a ResourceQuery, but not both. /// This member is required. public var resourceQuery: ResourceGroupsClientTypes.ResourceQuery? diff --git a/Sources/Services/AWSResourceGroupsTaggingAPI/Paginators.swift b/Sources/Services/AWSResourceGroupsTaggingAPI/Paginators.swift index 41651ed8402..6a45d7a7617 100644 --- a/Sources/Services/AWSResourceGroupsTaggingAPI/Paginators.swift +++ b/Sources/Services/AWSResourceGroupsTaggingAPI/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetComplianceSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetComplianceSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetComplianceSummaryOutputResponse` extension ResourceGroupsTaggingAPIClient { + /// Paginate over `[GetComplianceSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetComplianceSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetComplianceSummaryOutputResponse` public func getComplianceSummaryPaginated(input: GetComplianceSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetComplianceSummaryInput.paginationToken, outputKey: \GetComplianceSummaryOutputResponse.paginationToken, paginationFunction: self.getComplianceSummary(input:)) } @@ -30,24 +29,23 @@ extension GetComplianceSummaryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getComplianceSummaryPaginated` -/// to access the nested member `[ResourceGroupsTaggingAPIClientTypes.Summary]` -/// - Returns: `[ResourceGroupsTaggingAPIClientTypes.Summary]` extension PaginatorSequence where Input == GetComplianceSummaryInput, Output == GetComplianceSummaryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getComplianceSummaryPaginated` + /// to access the nested member `[ResourceGroupsTaggingAPIClientTypes.Summary]` + /// - Returns: `[ResourceGroupsTaggingAPIClientTypes.Summary]` public func summaryList() async throws -> [ResourceGroupsTaggingAPIClientTypes.Summary] { return try await self.asyncCompactMap { item in item.summaryList } } } - -/// Paginate over `[GetResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcesOutputResponse` extension ResourceGroupsTaggingAPIClient { + /// Paginate over `[GetResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcesOutputResponse` public func getResourcesPaginated(input: GetResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcesInput.paginationToken, outputKey: \GetResourcesOutputResponse.paginationToken, paginationFunction: self.getResources(input:)) } @@ -67,24 +65,23 @@ extension GetResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourcesPaginated` -/// to access the nested member `[ResourceGroupsTaggingAPIClientTypes.ResourceTagMapping]` -/// - Returns: `[ResourceGroupsTaggingAPIClientTypes.ResourceTagMapping]` extension PaginatorSequence where Input == GetResourcesInput, Output == GetResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourcesPaginated` + /// to access the nested member `[ResourceGroupsTaggingAPIClientTypes.ResourceTagMapping]` + /// - Returns: `[ResourceGroupsTaggingAPIClientTypes.ResourceTagMapping]` public func resourceTagMappingList() async throws -> [ResourceGroupsTaggingAPIClientTypes.ResourceTagMapping] { return try await self.asyncCompactMap { item in item.resourceTagMappingList } } } - -/// Paginate over `[GetTagKeysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTagKeysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTagKeysOutputResponse` extension ResourceGroupsTaggingAPIClient { + /// Paginate over `[GetTagKeysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTagKeysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTagKeysOutputResponse` public func getTagKeysPaginated(input: GetTagKeysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTagKeysInput.paginationToken, outputKey: \GetTagKeysOutputResponse.paginationToken, paginationFunction: self.getTagKeys(input:)) } @@ -97,24 +94,23 @@ extension GetTagKeysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTagKeysPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == GetTagKeysInput, Output == GetTagKeysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTagKeysPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func tagKeys() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.tagKeys } } } - -/// Paginate over `[GetTagValuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTagValuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTagValuesOutputResponse` extension ResourceGroupsTaggingAPIClient { + /// Paginate over `[GetTagValuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTagValuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTagValuesOutputResponse` public func getTagValuesPaginated(input: GetTagValuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTagValuesInput.paginationToken, outputKey: \GetTagValuesOutputResponse.paginationToken, paginationFunction: self.getTagValues(input:)) } @@ -128,10 +124,10 @@ extension GetTagValuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTagValuesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == GetTagValuesInput, Output == GetTagValuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTagValuesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func tagValues() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.tagValues } } diff --git a/Sources/Services/AWSRoboMaker/Paginators.swift b/Sources/Services/AWSRoboMaker/Paginators.swift index e3389639c29..7c152106d6c 100644 --- a/Sources/Services/AWSRoboMaker/Paginators.swift +++ b/Sources/Services/AWSRoboMaker/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDeploymentJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeploymentJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentJobsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListDeploymentJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeploymentJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeploymentJobsOutputResponse` public func listDeploymentJobsPaginated(input: ListDeploymentJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeploymentJobsInput.nextToken, outputKey: \ListDeploymentJobsOutputResponse.nextToken, paginationFunction: self.listDeploymentJobs(input:)) } @@ -25,16 +24,15 @@ extension ListDeploymentJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` public func listFleetsPaginated(input: ListFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFleetsInput.nextToken, outputKey: \ListFleetsOutputResponse.nextToken, paginationFunction: self.listFleets(input:)) } @@ -48,16 +46,15 @@ extension ListFleetsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRobotApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRobotApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRobotApplicationsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListRobotApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRobotApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRobotApplicationsOutputResponse` public func listRobotApplicationsPaginated(input: ListRobotApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRobotApplicationsInput.nextToken, outputKey: \ListRobotApplicationsOutputResponse.nextToken, paginationFunction: self.listRobotApplications(input:)) } @@ -72,16 +69,15 @@ extension ListRobotApplicationsInput: ClientRuntime.PaginateToken { versionQualifier: self.versionQualifier )} } - -/// Paginate over `[ListRobotsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRobotsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRobotsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListRobotsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRobotsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRobotsOutputResponse` public func listRobotsPaginated(input: ListRobotsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRobotsInput.nextToken, outputKey: \ListRobotsOutputResponse.nextToken, paginationFunction: self.listRobots(input:)) } @@ -95,16 +91,15 @@ extension ListRobotsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSimulationApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSimulationApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSimulationApplicationsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListSimulationApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSimulationApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSimulationApplicationsOutputResponse` public func listSimulationApplicationsPaginated(input: ListSimulationApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSimulationApplicationsInput.nextToken, outputKey: \ListSimulationApplicationsOutputResponse.nextToken, paginationFunction: self.listSimulationApplications(input:)) } @@ -119,16 +114,15 @@ extension ListSimulationApplicationsInput: ClientRuntime.PaginateToken { versionQualifier: self.versionQualifier )} } - -/// Paginate over `[ListSimulationJobBatchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSimulationJobBatchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSimulationJobBatchesOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListSimulationJobBatchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSimulationJobBatchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSimulationJobBatchesOutputResponse` public func listSimulationJobBatchesPaginated(input: ListSimulationJobBatchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSimulationJobBatchesInput.nextToken, outputKey: \ListSimulationJobBatchesOutputResponse.nextToken, paginationFunction: self.listSimulationJobBatches(input:)) } @@ -142,16 +136,15 @@ extension ListSimulationJobBatchesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSimulationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSimulationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSimulationJobsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListSimulationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSimulationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSimulationJobsOutputResponse` public func listSimulationJobsPaginated(input: ListSimulationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSimulationJobsInput.nextToken, outputKey: \ListSimulationJobsOutputResponse.nextToken, paginationFunction: self.listSimulationJobs(input:)) } @@ -165,16 +158,15 @@ extension ListSimulationJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWorldExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorldExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorldExportJobsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListWorldExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorldExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorldExportJobsOutputResponse` public func listWorldExportJobsPaginated(input: ListWorldExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorldExportJobsInput.nextToken, outputKey: \ListWorldExportJobsOutputResponse.nextToken, paginationFunction: self.listWorldExportJobs(input:)) } @@ -188,16 +180,15 @@ extension ListWorldExportJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWorldGenerationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorldGenerationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorldGenerationJobsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListWorldGenerationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorldGenerationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorldGenerationJobsOutputResponse` public func listWorldGenerationJobsPaginated(input: ListWorldGenerationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorldGenerationJobsInput.nextToken, outputKey: \ListWorldGenerationJobsOutputResponse.nextToken, paginationFunction: self.listWorldGenerationJobs(input:)) } @@ -211,16 +202,15 @@ extension ListWorldGenerationJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWorldsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorldsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorldsOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListWorldsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorldsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorldsOutputResponse` public func listWorldsPaginated(input: ListWorldsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorldsInput.nextToken, outputKey: \ListWorldsOutputResponse.nextToken, paginationFunction: self.listWorlds(input:)) } @@ -234,16 +224,15 @@ extension ListWorldsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWorldTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorldTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorldTemplatesOutputResponse` extension RoboMakerClient { + /// Paginate over `[ListWorldTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorldTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorldTemplatesOutputResponse` public func listWorldTemplatesPaginated(input: ListWorldTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorldTemplatesInput.nextToken, outputKey: \ListWorldTemplatesOutputResponse.nextToken, paginationFunction: self.listWorldTemplates(input:)) } diff --git a/Sources/Services/AWSRoute53/EndpointResolver.swift b/Sources/Services/AWSRoute53/EndpointResolver.swift index 20d47c24c12..e2c1b8c2429 100644 --- a/Sources/Services/AWSRoute53/EndpointResolver.swift +++ b/Sources/Services/AWSRoute53/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-b\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://route53.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-northwest-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://route53.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://route53.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"route53\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-cn\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.amazonwebservices.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-us-gov\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws-iso-b\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route-53-fips.{Region}.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://route53.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"cn-northwest-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://route53.us-gov.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://route53.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://route53.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSRoute53/Paginators.swift b/Sources/Services/AWSRoute53/Paginators.swift index f668d7b426f..8300ec11230 100644 --- a/Sources/Services/AWSRoute53/Paginators.swift +++ b/Sources/Services/AWSRoute53/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCidrBlocksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCidrBlocksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCidrBlocksOutputResponse` extension Route53Client { + /// Paginate over `[ListCidrBlocksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCidrBlocksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCidrBlocksOutputResponse` public func listCidrBlocksPaginated(input: ListCidrBlocksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCidrBlocksInput.nextToken, outputKey: \ListCidrBlocksOutputResponse.nextToken, paginationFunction: self.listCidrBlocks(input:)) } @@ -27,24 +26,23 @@ extension ListCidrBlocksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCidrBlocksPaginated` -/// to access the nested member `[Route53ClientTypes.CidrBlockSummary]` -/// - Returns: `[Route53ClientTypes.CidrBlockSummary]` extension PaginatorSequence where Input == ListCidrBlocksInput, Output == ListCidrBlocksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCidrBlocksPaginated` + /// to access the nested member `[Route53ClientTypes.CidrBlockSummary]` + /// - Returns: `[Route53ClientTypes.CidrBlockSummary]` public func cidrBlocks() async throws -> [Route53ClientTypes.CidrBlockSummary] { return try await self.asyncCompactMap { item in item.cidrBlocks } } } - -/// Paginate over `[ListCidrCollectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCidrCollectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCidrCollectionsOutputResponse` extension Route53Client { + /// Paginate over `[ListCidrCollectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCidrCollectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCidrCollectionsOutputResponse` public func listCidrCollectionsPaginated(input: ListCidrCollectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCidrCollectionsInput.nextToken, outputKey: \ListCidrCollectionsOutputResponse.nextToken, paginationFunction: self.listCidrCollections(input:)) } @@ -58,24 +56,23 @@ extension ListCidrCollectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCidrCollectionsPaginated` -/// to access the nested member `[Route53ClientTypes.CollectionSummary]` -/// - Returns: `[Route53ClientTypes.CollectionSummary]` extension PaginatorSequence where Input == ListCidrCollectionsInput, Output == ListCidrCollectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCidrCollectionsPaginated` + /// to access the nested member `[Route53ClientTypes.CollectionSummary]` + /// - Returns: `[Route53ClientTypes.CollectionSummary]` public func cidrCollections() async throws -> [Route53ClientTypes.CollectionSummary] { return try await self.asyncCompactMap { item in item.cidrCollections } } } - -/// Paginate over `[ListCidrLocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCidrLocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCidrLocationsOutputResponse` extension Route53Client { + /// Paginate over `[ListCidrLocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCidrLocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCidrLocationsOutputResponse` public func listCidrLocationsPaginated(input: ListCidrLocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCidrLocationsInput.nextToken, outputKey: \ListCidrLocationsOutputResponse.nextToken, paginationFunction: self.listCidrLocations(input:)) } @@ -90,24 +87,23 @@ extension ListCidrLocationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCidrLocationsPaginated` -/// to access the nested member `[Route53ClientTypes.LocationSummary]` -/// - Returns: `[Route53ClientTypes.LocationSummary]` extension PaginatorSequence where Input == ListCidrLocationsInput, Output == ListCidrLocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCidrLocationsPaginated` + /// to access the nested member `[Route53ClientTypes.LocationSummary]` + /// - Returns: `[Route53ClientTypes.LocationSummary]` public func cidrLocations() async throws -> [Route53ClientTypes.LocationSummary] { return try await self.asyncCompactMap { item in item.cidrLocations } } } - -/// Paginate over `[ListHealthChecksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHealthChecksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHealthChecksOutputResponse` extension Route53Client { + /// Paginate over `[ListHealthChecksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHealthChecksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHealthChecksOutputResponse` public func listHealthChecksPaginated(input: ListHealthChecksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHealthChecksInput.marker, outputKey: \ListHealthChecksOutputResponse.nextMarker, paginationFunction: self.listHealthChecks(input:)) } @@ -121,24 +117,23 @@ extension ListHealthChecksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHealthChecksPaginated` -/// to access the nested member `[Route53ClientTypes.HealthCheck]` -/// - Returns: `[Route53ClientTypes.HealthCheck]` extension PaginatorSequence where Input == ListHealthChecksInput, Output == ListHealthChecksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHealthChecksPaginated` + /// to access the nested member `[Route53ClientTypes.HealthCheck]` + /// - Returns: `[Route53ClientTypes.HealthCheck]` public func healthChecks() async throws -> [Route53ClientTypes.HealthCheck] { return try await self.asyncCompactMap { item in item.healthChecks } } } - -/// Paginate over `[ListHostedZonesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHostedZonesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHostedZonesOutputResponse` extension Route53Client { + /// Paginate over `[ListHostedZonesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHostedZonesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHostedZonesOutputResponse` public func listHostedZonesPaginated(input: ListHostedZonesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHostedZonesInput.marker, outputKey: \ListHostedZonesOutputResponse.nextMarker, paginationFunction: self.listHostedZones(input:)) } @@ -153,24 +148,23 @@ extension ListHostedZonesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHostedZonesPaginated` -/// to access the nested member `[Route53ClientTypes.HostedZone]` -/// - Returns: `[Route53ClientTypes.HostedZone]` extension PaginatorSequence where Input == ListHostedZonesInput, Output == ListHostedZonesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHostedZonesPaginated` + /// to access the nested member `[Route53ClientTypes.HostedZone]` + /// - Returns: `[Route53ClientTypes.HostedZone]` public func hostedZones() async throws -> [Route53ClientTypes.HostedZone] { return try await self.asyncCompactMap { item in item.hostedZones } } } - -/// Paginate over `[ListQueryLoggingConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueryLoggingConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueryLoggingConfigsOutputResponse` extension Route53Client { + /// Paginate over `[ListQueryLoggingConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueryLoggingConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueryLoggingConfigsOutputResponse` public func listQueryLoggingConfigsPaginated(input: ListQueryLoggingConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueryLoggingConfigsInput.nextToken, outputKey: \ListQueryLoggingConfigsOutputResponse.nextToken, paginationFunction: self.listQueryLoggingConfigs(input:)) } @@ -185,10 +179,10 @@ extension ListQueryLoggingConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQueryLoggingConfigsPaginated` -/// to access the nested member `[Route53ClientTypes.QueryLoggingConfig]` -/// - Returns: `[Route53ClientTypes.QueryLoggingConfig]` extension PaginatorSequence where Input == ListQueryLoggingConfigsInput, Output == ListQueryLoggingConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQueryLoggingConfigsPaginated` + /// to access the nested member `[Route53ClientTypes.QueryLoggingConfig]` + /// - Returns: `[Route53ClientTypes.QueryLoggingConfig]` public func queryLoggingConfigs() async throws -> [Route53ClientTypes.QueryLoggingConfig] { return try await self.asyncCompactMap { item in item.queryLoggingConfigs } } diff --git a/Sources/Services/AWSRoute53Domains/Paginators.swift b/Sources/Services/AWSRoute53Domains/Paginators.swift index 59675ccee28..209a4b5d33a 100644 --- a/Sources/Services/AWSRoute53Domains/Paginators.swift +++ b/Sources/Services/AWSRoute53Domains/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` extension Route53DomainsClient { + /// Paginate over `[ListDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` public func listDomainsPaginated(input: ListDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsInput.marker, outputKey: \ListDomainsOutputResponse.nextPageMarker, paginationFunction: self.listDomains(input:)) } @@ -27,24 +26,23 @@ extension ListDomainsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` -/// to access the nested member `[Route53DomainsClientTypes.DomainSummary]` -/// - Returns: `[Route53DomainsClientTypes.DomainSummary]` extension PaginatorSequence where Input == ListDomainsInput, Output == ListDomainsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` + /// to access the nested member `[Route53DomainsClientTypes.DomainSummary]` + /// - Returns: `[Route53DomainsClientTypes.DomainSummary]` public func domains() async throws -> [Route53DomainsClientTypes.DomainSummary] { return try await self.asyncCompactMap { item in item.domains } } } - -/// Paginate over `[ListOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` extension Route53DomainsClient { + /// Paginate over `[ListOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` public func listOperationsPaginated(input: ListOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOperationsInput.marker, outputKey: \ListOperationsOutputResponse.nextPageMarker, paginationFunction: self.listOperations(input:)) } @@ -63,24 +61,23 @@ extension ListOperationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOperationsPaginated` -/// to access the nested member `[Route53DomainsClientTypes.OperationSummary]` -/// - Returns: `[Route53DomainsClientTypes.OperationSummary]` extension PaginatorSequence where Input == ListOperationsInput, Output == ListOperationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOperationsPaginated` + /// to access the nested member `[Route53DomainsClientTypes.OperationSummary]` + /// - Returns: `[Route53DomainsClientTypes.OperationSummary]` public func operations() async throws -> [Route53DomainsClientTypes.OperationSummary] { return try await self.asyncCompactMap { item in item.operations } } } - -/// Paginate over `[ListPricesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPricesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPricesOutputResponse` extension Route53DomainsClient { + /// Paginate over `[ListPricesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPricesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPricesOutputResponse` public func listPricesPaginated(input: ListPricesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPricesInput.marker, outputKey: \ListPricesOutputResponse.nextPageMarker, paginationFunction: self.listPrices(input:)) } @@ -95,24 +92,23 @@ extension ListPricesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPricesPaginated` -/// to access the nested member `[Route53DomainsClientTypes.DomainPrice]` -/// - Returns: `[Route53DomainsClientTypes.DomainPrice]` extension PaginatorSequence where Input == ListPricesInput, Output == ListPricesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPricesPaginated` + /// to access the nested member `[Route53DomainsClientTypes.DomainPrice]` + /// - Returns: `[Route53DomainsClientTypes.DomainPrice]` public func prices() async throws -> [Route53DomainsClientTypes.DomainPrice] { return try await self.asyncCompactMap { item in item.prices } } } - -/// Paginate over `[ViewBillingOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ViewBillingInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ViewBillingOutputResponse` extension Route53DomainsClient { + /// Paginate over `[ViewBillingOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ViewBillingInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ViewBillingOutputResponse` public func viewBillingPaginated(input: ViewBillingInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ViewBillingInput.marker, outputKey: \ViewBillingOutputResponse.nextPageMarker, paginationFunction: self.viewBilling(input:)) } @@ -128,10 +124,10 @@ extension ViewBillingInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `viewBillingPaginated` -/// to access the nested member `[Route53DomainsClientTypes.BillingRecord]` -/// - Returns: `[Route53DomainsClientTypes.BillingRecord]` extension PaginatorSequence where Input == ViewBillingInput, Output == ViewBillingOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `viewBillingPaginated` + /// to access the nested member `[Route53DomainsClientTypes.BillingRecord]` + /// - Returns: `[Route53DomainsClientTypes.BillingRecord]` public func billingRecords() async throws -> [Route53DomainsClientTypes.BillingRecord] { return try await self.asyncCompactMap { item in item.billingRecords } } diff --git a/Sources/Services/AWSRoute53RecoveryCluster/Paginators.swift b/Sources/Services/AWSRoute53RecoveryCluster/Paginators.swift index 7ab8124ab39..a5ae6720991 100644 --- a/Sources/Services/AWSRoute53RecoveryCluster/Paginators.swift +++ b/Sources/Services/AWSRoute53RecoveryCluster/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListRoutingControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoutingControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoutingControlsOutputResponse` extension Route53RecoveryClusterClient { + /// Paginate over `[ListRoutingControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoutingControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoutingControlsOutputResponse` public func listRoutingControlsPaginated(input: ListRoutingControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoutingControlsInput.nextToken, outputKey: \ListRoutingControlsOutputResponse.nextToken, paginationFunction: self.listRoutingControls(input:)) } diff --git a/Sources/Services/AWSRoute53RecoveryControlConfig/EndpointResolver.swift b/Sources/Services/AWSRoute53RecoveryControlConfig/EndpointResolver.swift index 5c85c13d574..abb12802e0e 100644 --- a/Sources/Services/AWSRoute53RecoveryControlConfig/EndpointResolver.swift +++ b/Sources/Services/AWSRoute53RecoveryControlConfig/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-west-2\",\"name\":\"sigv4\",\"signingName\":\"route53-recovery-control-config\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.us-west-2.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"route53-recovery-control-config\",\"signingRegion\":\"us-west-2\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://route53-recovery-control-config.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSRoute53RecoveryControlConfig/Paginators.swift b/Sources/Services/AWSRoute53RecoveryControlConfig/Paginators.swift index 17a883bb6d5..4674d46494d 100644 --- a/Sources/Services/AWSRoute53RecoveryControlConfig/Paginators.swift +++ b/Sources/Services/AWSRoute53RecoveryControlConfig/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAssociatedRoute53HealthChecksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedRoute53HealthChecksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedRoute53HealthChecksOutputResponse` extension Route53RecoveryControlConfigClient { + /// Paginate over `[ListAssociatedRoute53HealthChecksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedRoute53HealthChecksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedRoute53HealthChecksOutputResponse` public func listAssociatedRoute53HealthChecksPaginated(input: ListAssociatedRoute53HealthChecksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedRoute53HealthChecksInput.nextToken, outputKey: \ListAssociatedRoute53HealthChecksOutputResponse.nextToken, paginationFunction: self.listAssociatedRoute53HealthChecks(input:)) } @@ -26,24 +25,23 @@ extension ListAssociatedRoute53HealthChecksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociatedRoute53HealthChecksPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAssociatedRoute53HealthChecksInput, Output == ListAssociatedRoute53HealthChecksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociatedRoute53HealthChecksPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func healthCheckIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.healthCheckIds } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension Route53RecoveryControlConfigClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -57,24 +55,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[Route53RecoveryControlConfigClientTypes.Cluster]` -/// - Returns: `[Route53RecoveryControlConfigClientTypes.Cluster]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[Route53RecoveryControlConfigClientTypes.Cluster]` + /// - Returns: `[Route53RecoveryControlConfigClientTypes.Cluster]` public func clusters() async throws -> [Route53RecoveryControlConfigClientTypes.Cluster] { return try await self.asyncCompactMap { item in item.clusters } } } - -/// Paginate over `[ListControlPanelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListControlPanelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListControlPanelsOutputResponse` extension Route53RecoveryControlConfigClient { + /// Paginate over `[ListControlPanelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListControlPanelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListControlPanelsOutputResponse` public func listControlPanelsPaginated(input: ListControlPanelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListControlPanelsInput.nextToken, outputKey: \ListControlPanelsOutputResponse.nextToken, paginationFunction: self.listControlPanels(input:)) } @@ -89,24 +86,23 @@ extension ListControlPanelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listControlPanelsPaginated` -/// to access the nested member `[Route53RecoveryControlConfigClientTypes.ControlPanel]` -/// - Returns: `[Route53RecoveryControlConfigClientTypes.ControlPanel]` extension PaginatorSequence where Input == ListControlPanelsInput, Output == ListControlPanelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listControlPanelsPaginated` + /// to access the nested member `[Route53RecoveryControlConfigClientTypes.ControlPanel]` + /// - Returns: `[Route53RecoveryControlConfigClientTypes.ControlPanel]` public func controlPanels() async throws -> [Route53RecoveryControlConfigClientTypes.ControlPanel] { return try await self.asyncCompactMap { item in item.controlPanels } } } - -/// Paginate over `[ListRoutingControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRoutingControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRoutingControlsOutputResponse` extension Route53RecoveryControlConfigClient { + /// Paginate over `[ListRoutingControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRoutingControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRoutingControlsOutputResponse` public func listRoutingControlsPaginated(input: ListRoutingControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRoutingControlsInput.nextToken, outputKey: \ListRoutingControlsOutputResponse.nextToken, paginationFunction: self.listRoutingControls(input:)) } @@ -121,24 +117,23 @@ extension ListRoutingControlsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRoutingControlsPaginated` -/// to access the nested member `[Route53RecoveryControlConfigClientTypes.RoutingControl]` -/// - Returns: `[Route53RecoveryControlConfigClientTypes.RoutingControl]` extension PaginatorSequence where Input == ListRoutingControlsInput, Output == ListRoutingControlsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRoutingControlsPaginated` + /// to access the nested member `[Route53RecoveryControlConfigClientTypes.RoutingControl]` + /// - Returns: `[Route53RecoveryControlConfigClientTypes.RoutingControl]` public func routingControls() async throws -> [Route53RecoveryControlConfigClientTypes.RoutingControl] { return try await self.asyncCompactMap { item in item.routingControls } } } - -/// Paginate over `[ListSafetyRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSafetyRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSafetyRulesOutputResponse` extension Route53RecoveryControlConfigClient { + /// Paginate over `[ListSafetyRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSafetyRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSafetyRulesOutputResponse` public func listSafetyRulesPaginated(input: ListSafetyRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSafetyRulesInput.nextToken, outputKey: \ListSafetyRulesOutputResponse.nextToken, paginationFunction: self.listSafetyRules(input:)) } @@ -153,10 +148,10 @@ extension ListSafetyRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSafetyRulesPaginated` -/// to access the nested member `[Route53RecoveryControlConfigClientTypes.Rule]` -/// - Returns: `[Route53RecoveryControlConfigClientTypes.Rule]` extension PaginatorSequence where Input == ListSafetyRulesInput, Output == ListSafetyRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSafetyRulesPaginated` + /// to access the nested member `[Route53RecoveryControlConfigClientTypes.Rule]` + /// - Returns: `[Route53RecoveryControlConfigClientTypes.Rule]` public func safetyRules() async throws -> [Route53RecoveryControlConfigClientTypes.Rule] { return try await self.asyncCompactMap { item in item.safetyRules } } diff --git a/Sources/Services/AWSRoute53RecoveryReadiness/Paginators.swift b/Sources/Services/AWSRoute53RecoveryReadiness/Paginators.swift index 1ce704494e1..6271db02952 100644 --- a/Sources/Services/AWSRoute53RecoveryReadiness/Paginators.swift +++ b/Sources/Services/AWSRoute53RecoveryReadiness/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetCellReadinessSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCellReadinessSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCellReadinessSummaryOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[GetCellReadinessSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCellReadinessSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCellReadinessSummaryOutputResponse` public func getCellReadinessSummaryPaginated(input: GetCellReadinessSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCellReadinessSummaryInput.nextToken, outputKey: \GetCellReadinessSummaryOutputResponse.nextToken, paginationFunction: self.getCellReadinessSummary(input:)) } @@ -26,24 +25,23 @@ extension GetCellReadinessSummaryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getCellReadinessSummaryPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` extension PaginatorSequence where Input == GetCellReadinessSummaryInput, Output == GetCellReadinessSummaryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getCellReadinessSummaryPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` public func readinessChecks() async throws -> [Route53RecoveryReadinessClientTypes.ReadinessCheckSummary] { return try await self.asyncCompactMap { item in item.readinessChecks } } } - -/// Paginate over `[GetReadinessCheckResourceStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReadinessCheckResourceStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReadinessCheckResourceStatusOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[GetReadinessCheckResourceStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReadinessCheckResourceStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReadinessCheckResourceStatusOutputResponse` public func getReadinessCheckResourceStatusPaginated(input: GetReadinessCheckResourceStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReadinessCheckResourceStatusInput.nextToken, outputKey: \GetReadinessCheckResourceStatusOutputResponse.nextToken, paginationFunction: self.getReadinessCheckResourceStatus(input:)) } @@ -59,24 +57,23 @@ extension GetReadinessCheckResourceStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getReadinessCheckResourceStatusPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.RuleResult]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.RuleResult]` extension PaginatorSequence where Input == GetReadinessCheckResourceStatusInput, Output == GetReadinessCheckResourceStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReadinessCheckResourceStatusPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.RuleResult]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.RuleResult]` public func rules() async throws -> [Route53RecoveryReadinessClientTypes.RuleResult] { return try await self.asyncCompactMap { item in item.rules } } } - -/// Paginate over `[GetReadinessCheckStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReadinessCheckStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReadinessCheckStatusOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[GetReadinessCheckStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReadinessCheckStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReadinessCheckStatusOutputResponse` public func getReadinessCheckStatusPaginated(input: GetReadinessCheckStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReadinessCheckStatusInput.nextToken, outputKey: \GetReadinessCheckStatusOutputResponse.nextToken, paginationFunction: self.getReadinessCheckStatus(input:)) } @@ -91,24 +88,23 @@ extension GetReadinessCheckStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getReadinessCheckStatusPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ResourceResult]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ResourceResult]` extension PaginatorSequence where Input == GetReadinessCheckStatusInput, Output == GetReadinessCheckStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReadinessCheckStatusPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ResourceResult]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ResourceResult]` public func resources() async throws -> [Route53RecoveryReadinessClientTypes.ResourceResult] { return try await self.asyncCompactMap { item in item.resources } } } - -/// Paginate over `[GetRecoveryGroupReadinessSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetRecoveryGroupReadinessSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetRecoveryGroupReadinessSummaryOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[GetRecoveryGroupReadinessSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetRecoveryGroupReadinessSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetRecoveryGroupReadinessSummaryOutputResponse` public func getRecoveryGroupReadinessSummaryPaginated(input: GetRecoveryGroupReadinessSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetRecoveryGroupReadinessSummaryInput.nextToken, outputKey: \GetRecoveryGroupReadinessSummaryOutputResponse.nextToken, paginationFunction: self.getRecoveryGroupReadinessSummary(input:)) } @@ -123,24 +119,23 @@ extension GetRecoveryGroupReadinessSummaryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getRecoveryGroupReadinessSummaryPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` extension PaginatorSequence where Input == GetRecoveryGroupReadinessSummaryInput, Output == GetRecoveryGroupReadinessSummaryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getRecoveryGroupReadinessSummaryPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckSummary]` public func readinessChecks() async throws -> [Route53RecoveryReadinessClientTypes.ReadinessCheckSummary] { return try await self.asyncCompactMap { item in item.readinessChecks } } } - -/// Paginate over `[ListCellsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCellsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCellsOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListCellsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCellsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCellsOutputResponse` public func listCellsPaginated(input: ListCellsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCellsInput.nextToken, outputKey: \ListCellsOutputResponse.nextToken, paginationFunction: self.listCells(input:)) } @@ -154,24 +149,23 @@ extension ListCellsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCellsPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.CellOutput]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.CellOutput]` extension PaginatorSequence where Input == ListCellsInput, Output == ListCellsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCellsPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.CellOutput]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.CellOutput]` public func cells() async throws -> [Route53RecoveryReadinessClientTypes.CellOutput] { return try await self.asyncCompactMap { item in item.cells } } } - -/// Paginate over `[ListCrossAccountAuthorizationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCrossAccountAuthorizationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCrossAccountAuthorizationsOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListCrossAccountAuthorizationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCrossAccountAuthorizationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCrossAccountAuthorizationsOutputResponse` public func listCrossAccountAuthorizationsPaginated(input: ListCrossAccountAuthorizationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCrossAccountAuthorizationsInput.nextToken, outputKey: \ListCrossAccountAuthorizationsOutputResponse.nextToken, paginationFunction: self.listCrossAccountAuthorizations(input:)) } @@ -185,24 +179,23 @@ extension ListCrossAccountAuthorizationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCrossAccountAuthorizationsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListCrossAccountAuthorizationsInput, Output == ListCrossAccountAuthorizationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCrossAccountAuthorizationsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func crossAccountAuthorizations() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.crossAccountAuthorizations } } } - -/// Paginate over `[ListReadinessChecksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReadinessChecksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReadinessChecksOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListReadinessChecksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReadinessChecksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReadinessChecksOutputResponse` public func listReadinessChecksPaginated(input: ListReadinessChecksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReadinessChecksInput.nextToken, outputKey: \ListReadinessChecksOutputResponse.nextToken, paginationFunction: self.listReadinessChecks(input:)) } @@ -216,24 +209,23 @@ extension ListReadinessChecksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReadinessChecksPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckOutput]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckOutput]` extension PaginatorSequence where Input == ListReadinessChecksInput, Output == ListReadinessChecksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReadinessChecksPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ReadinessCheckOutput]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ReadinessCheckOutput]` public func readinessChecks() async throws -> [Route53RecoveryReadinessClientTypes.ReadinessCheckOutput] { return try await self.asyncCompactMap { item in item.readinessChecks } } } - -/// Paginate over `[ListRecoveryGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecoveryGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryGroupsOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListRecoveryGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecoveryGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecoveryGroupsOutputResponse` public func listRecoveryGroupsPaginated(input: ListRecoveryGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecoveryGroupsInput.nextToken, outputKey: \ListRecoveryGroupsOutputResponse.nextToken, paginationFunction: self.listRecoveryGroups(input:)) } @@ -247,24 +239,23 @@ extension ListRecoveryGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRecoveryGroupsPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.RecoveryGroupOutput]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.RecoveryGroupOutput]` extension PaginatorSequence where Input == ListRecoveryGroupsInput, Output == ListRecoveryGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRecoveryGroupsPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.RecoveryGroupOutput]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.RecoveryGroupOutput]` public func recoveryGroups() async throws -> [Route53RecoveryReadinessClientTypes.RecoveryGroupOutput] { return try await self.asyncCompactMap { item in item.recoveryGroups } } } - -/// Paginate over `[ListResourceSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceSetsOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListResourceSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceSetsOutputResponse` public func listResourceSetsPaginated(input: ListResourceSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceSetsInput.nextToken, outputKey: \ListResourceSetsOutputResponse.nextToken, paginationFunction: self.listResourceSets(input:)) } @@ -278,24 +269,23 @@ extension ListResourceSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceSetsPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ResourceSetOutput]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ResourceSetOutput]` extension PaginatorSequence where Input == ListResourceSetsInput, Output == ListResourceSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceSetsPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ResourceSetOutput]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ResourceSetOutput]` public func resourceSets() async throws -> [Route53RecoveryReadinessClientTypes.ResourceSetOutput] { return try await self.asyncCompactMap { item in item.resourceSets } } } - -/// Paginate over `[ListRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` extension Route53RecoveryReadinessClient { + /// Paginate over `[ListRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRulesOutputResponse` public func listRulesPaginated(input: ListRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRulesInput.nextToken, outputKey: \ListRulesOutputResponse.nextToken, paginationFunction: self.listRules(input:)) } @@ -310,10 +300,10 @@ extension ListRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` -/// to access the nested member `[Route53RecoveryReadinessClientTypes.ListRulesOutput]` -/// - Returns: `[Route53RecoveryReadinessClientTypes.ListRulesOutput]` extension PaginatorSequence where Input == ListRulesInput, Output == ListRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRulesPaginated` + /// to access the nested member `[Route53RecoveryReadinessClientTypes.ListRulesOutput]` + /// - Returns: `[Route53RecoveryReadinessClientTypes.ListRulesOutput]` public func rules() async throws -> [Route53RecoveryReadinessClientTypes.ListRulesOutput] { return try await self.asyncCompactMap { item in item.rules } } diff --git a/Sources/Services/AWSRoute53Resolver/Paginators.swift b/Sources/Services/AWSRoute53Resolver/Paginators.swift index 33e924f80f4..61e007ba315 100644 --- a/Sources/Services/AWSRoute53Resolver/Paginators.swift +++ b/Sources/Services/AWSRoute53Resolver/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListFirewallConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallConfigsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallConfigsOutputResponse` public func listFirewallConfigsPaginated(input: ListFirewallConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallConfigsInput.nextToken, outputKey: \ListFirewallConfigsOutputResponse.nextToken, paginationFunction: self.listFirewallConfigs(input:)) } @@ -24,16 +23,15 @@ extension ListFirewallConfigsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFirewallDomainListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallDomainListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallDomainListsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallDomainListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallDomainListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallDomainListsOutputResponse` public func listFirewallDomainListsPaginated(input: ListFirewallDomainListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallDomainListsInput.nextToken, outputKey: \ListFirewallDomainListsOutputResponse.nextToken, paginationFunction: self.listFirewallDomainLists(input:)) } @@ -46,16 +44,15 @@ extension ListFirewallDomainListsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFirewallDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallDomainsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallDomainsOutputResponse` public func listFirewallDomainsPaginated(input: ListFirewallDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallDomainsInput.nextToken, outputKey: \ListFirewallDomainsOutputResponse.nextToken, paginationFunction: self.listFirewallDomains(input:)) } @@ -69,16 +66,15 @@ extension ListFirewallDomainsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFirewallRuleGroupAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallRuleGroupAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRuleGroupAssociationsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallRuleGroupAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallRuleGroupAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRuleGroupAssociationsOutputResponse` public func listFirewallRuleGroupAssociationsPaginated(input: ListFirewallRuleGroupAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallRuleGroupAssociationsInput.nextToken, outputKey: \ListFirewallRuleGroupAssociationsOutputResponse.nextToken, paginationFunction: self.listFirewallRuleGroupAssociations(input:)) } @@ -95,16 +91,15 @@ extension ListFirewallRuleGroupAssociationsInput: ClientRuntime.PaginateToken { vpcId: self.vpcId )} } - -/// Paginate over `[ListFirewallRuleGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallRuleGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRuleGroupsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallRuleGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallRuleGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRuleGroupsOutputResponse` public func listFirewallRuleGroupsPaginated(input: ListFirewallRuleGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallRuleGroupsInput.nextToken, outputKey: \ListFirewallRuleGroupsOutputResponse.nextToken, paginationFunction: self.listFirewallRuleGroups(input:)) } @@ -117,16 +112,15 @@ extension ListFirewallRuleGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFirewallRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFirewallRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRulesOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListFirewallRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFirewallRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFirewallRulesOutputResponse` public func listFirewallRulesPaginated(input: ListFirewallRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFirewallRulesInput.nextToken, outputKey: \ListFirewallRulesOutputResponse.nextToken, paginationFunction: self.listFirewallRules(input:)) } @@ -142,16 +136,15 @@ extension ListFirewallRulesInput: ClientRuntime.PaginateToken { priority: self.priority )} } - -/// Paginate over `[ListResolverConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverConfigsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverConfigsOutputResponse` public func listResolverConfigsPaginated(input: ListResolverConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverConfigsInput.nextToken, outputKey: \ListResolverConfigsOutputResponse.nextToken, paginationFunction: self.listResolverConfigs(input:)) } @@ -164,16 +157,15 @@ extension ListResolverConfigsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListResolverDnssecConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverDnssecConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverDnssecConfigsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverDnssecConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverDnssecConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverDnssecConfigsOutputResponse` public func listResolverDnssecConfigsPaginated(input: ListResolverDnssecConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverDnssecConfigsInput.nextToken, outputKey: \ListResolverDnssecConfigsOutputResponse.nextToken, paginationFunction: self.listResolverDnssecConfigs(input:)) } @@ -187,16 +179,15 @@ extension ListResolverDnssecConfigsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListResolverEndpointIpAddressesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverEndpointIpAddressesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverEndpointIpAddressesOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverEndpointIpAddressesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverEndpointIpAddressesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverEndpointIpAddressesOutputResponse` public func listResolverEndpointIpAddressesPaginated(input: ListResolverEndpointIpAddressesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverEndpointIpAddressesInput.nextToken, outputKey: \ListResolverEndpointIpAddressesOutputResponse.nextToken, paginationFunction: self.listResolverEndpointIpAddresses(input:)) } @@ -210,16 +201,15 @@ extension ListResolverEndpointIpAddressesInput: ClientRuntime.PaginateToken { resolverEndpointId: self.resolverEndpointId )} } - -/// Paginate over `[ListResolverEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverEndpointsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverEndpointsOutputResponse` public func listResolverEndpointsPaginated(input: ListResolverEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverEndpointsInput.nextToken, outputKey: \ListResolverEndpointsOutputResponse.nextToken, paginationFunction: self.listResolverEndpoints(input:)) } @@ -233,16 +223,15 @@ extension ListResolverEndpointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListResolverQueryLogConfigAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverQueryLogConfigAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverQueryLogConfigAssociationsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverQueryLogConfigAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverQueryLogConfigAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverQueryLogConfigAssociationsOutputResponse` public func listResolverQueryLogConfigAssociationsPaginated(input: ListResolverQueryLogConfigAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverQueryLogConfigAssociationsInput.nextToken, outputKey: \ListResolverQueryLogConfigAssociationsOutputResponse.nextToken, paginationFunction: self.listResolverQueryLogConfigAssociations(input:)) } @@ -258,16 +247,15 @@ extension ListResolverQueryLogConfigAssociationsInput: ClientRuntime.PaginateTok sortOrder: self.sortOrder )} } - -/// Paginate over `[ListResolverQueryLogConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverQueryLogConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverQueryLogConfigsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverQueryLogConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverQueryLogConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverQueryLogConfigsOutputResponse` public func listResolverQueryLogConfigsPaginated(input: ListResolverQueryLogConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverQueryLogConfigsInput.nextToken, outputKey: \ListResolverQueryLogConfigsOutputResponse.nextToken, paginationFunction: self.listResolverQueryLogConfigs(input:)) } @@ -283,16 +271,15 @@ extension ListResolverQueryLogConfigsInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[ListResolverRuleAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverRuleAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverRuleAssociationsOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverRuleAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverRuleAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverRuleAssociationsOutputResponse` public func listResolverRuleAssociationsPaginated(input: ListResolverRuleAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverRuleAssociationsInput.nextToken, outputKey: \ListResolverRuleAssociationsOutputResponse.nextToken, paginationFunction: self.listResolverRuleAssociations(input:)) } @@ -306,16 +293,15 @@ extension ListResolverRuleAssociationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListResolverRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResolverRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResolverRulesOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListResolverRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResolverRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResolverRulesOutputResponse` public func listResolverRulesPaginated(input: ListResolverRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResolverRulesInput.nextToken, outputKey: \ListResolverRulesOutputResponse.nextToken, paginationFunction: self.listResolverRules(input:)) } @@ -329,16 +315,15 @@ extension ListResolverRulesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension Route53ResolverClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } diff --git a/Sources/Services/AWSS3/EndpointResolver.swift b/Sources/Services/AWSS3/EndpointResolver.swift index 619d6054647..e82067b9061 100644 --- a/Sources/Services/AWSS3/EndpointResolver.swift +++ b/Sources/Services/AWSS3/EndpointResolver.swift @@ -67,7 +67,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Bucket\":{\"required\":false,\"documentation\":\"The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.\",\"type\":\"String\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"ForcePathStyle\":{\"builtIn\":\"AWS::S3::ForcePathStyle\",\"required\":false,\"documentation\":\"When true, force a path-style endpoint to be used where the bucket name is part of the path.\",\"type\":\"Boolean\"},\"Accelerate\":{\"builtIn\":\"AWS::S3::Accelerate\",\"required\":true,\"default\":false,\"documentation\":\"When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.\",\"type\":\"Boolean\"},\"UseGlobalEndpoint\":{\"builtIn\":\"AWS::S3::UseGlobalEndpoint\",\"required\":true,\"default\":false,\"documentation\":\"Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.\",\"type\":\"Boolean\"},\"UseObjectLambdaEndpoint\":{\"required\":false,\"documentation\":\"Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)\",\"type\":\"Boolean\"},\"DisableAccessPoints\":{\"required\":false,\"documentation\":\"Internal parameter to disable Access Point Buckets\",\"type\":\"Boolean\"},\"DisableMultiRegionAccessPoints\":{\"builtIn\":\"AWS::S3::DisableMultiRegionAccessPoints\",\"required\":true,\"default\":false,\"documentation\":\"Whether multi-region access points (MRAP) should be disabled.\",\"type\":\"Boolean\"},\"UseArnRegion\":{\"builtIn\":\"AWS::S3::UseArnRegion\",\"required\":false,\"documentation\":\"When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},49,50,true],\"assign\":\"hardwareType\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},8,12,true],\"assign\":\"regionPrefix\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},0,7,true],\"assign\":\"abbaSuffix\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},32,49,true],\"assign\":\"outpostId\"},{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"regionPartition\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"abbaSuffix\"},\"--op-s3\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"hardwareType\"},\"e\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"regionPrefix\"},\"beta\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"error\":\"Expected a endpoint to be specified but no endpoint was found\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{Bucket}.ec2.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"hardwareType\"},\"o\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"regionPrefix\"},\"beta\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"error\":\"Expected a endpoint to be specified but no endpoint was found\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{Bucket}.op-{outpostId}.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}]}],\"error\":\"Custom endpoint `{Endpoint}` was not a valid URI\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"ForcePathStyle\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"ForcePathStyle\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}]}],\"error\":\"Path-style addressing cannot be used with ARN buckets\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"uriEncode\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"uri_encoded_bucket\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"Cannot set dual-stack in combination with a custom endpoint.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with FIPS\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with S3 Accelerate\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[{\"fn\":\"aws.isVirtualHostableS3Bucket\",\"argv\":[{\"ref\":\"Bucket\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Accelerate cannot be used with FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"S3 Accelerate cannot be used in this region\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"scheme\"]},\"http\"]},{\"fn\":\"aws.isVirtualHostableS3Bucket\",\"argv\":[{\"ref\":\"Bucket\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"bucketArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-object-lambda\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"accessPointName\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"accessPointName\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Object Lambda does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Object Lambda does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"DisableAccessPoints\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableAccessPoints\"},true]}],\"error\":\"Access points are not supported for this operation\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"]}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},\"\"]}],\"error\":\"Invalid ARN: Missing account id\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: bucket ARN is missing a region\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"accessPointName\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"accessPointName\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"DisableAccessPoints\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableAccessPoints\"},true]}],\"error\":\"Access points are not supported for this operation\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"]}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"{partitionResult#name}\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"Access Points do not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"DualStack cannot be combined with a Host override (PrivateLink)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: bucket ARN is missing a region\",\"type\":\"error\"}]}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 MRAP does not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"S3 MRAP does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 MRAP does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableMultiRegionAccessPoints\"},true]}],\"error\":\"Invalid configuration: Multi-Region Access Point ARNs are disabled.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"mrapPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"mrapPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"partition\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegionSet\":[\"*\"],\"name\":\"sigv4a\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"{Region} was not a valid region\",\"type\":\"error\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid Access Point Name\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Outposts does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"S3 Outposts does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Outposts does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[4]\"]}]}],\"error\":\"Invalid Arn: Outpost Access Point ARN contains sub resources\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[3]\"],\"assign\":\"accessPointName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Expected an outpost type `accesspoint`, found {outpostType}\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected an access point name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region {bucketArn#region}\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},0,4,false],\"assign\":\"arnPrefix\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnPrefix\"},\"arn:\"]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}]}]}]}],\"error\":\"Invalid ARN: `{Bucket}` was not a valid ARN\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"uriEncode\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"uri_encoded_bucket\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"Cannot set dual-stack in combination with a custom endpoint.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with FIPS\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with S3 Accelerate\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseObjectLambdaEndpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseObjectLambdaEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Object Lambda does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Object Lambda does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"A region must be set when sending requests to S3.\",\"type\":\"error\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Bucket\":{\"required\":false,\"documentation\":\"The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.\",\"type\":\"String\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"ForcePathStyle\":{\"builtIn\":\"AWS::S3::ForcePathStyle\",\"required\":false,\"documentation\":\"When true, force a path-style endpoint to be used where the bucket name is part of the path.\",\"type\":\"Boolean\"},\"Accelerate\":{\"builtIn\":\"AWS::S3::Accelerate\",\"required\":true,\"default\":false,\"documentation\":\"When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.\",\"type\":\"Boolean\"},\"UseGlobalEndpoint\":{\"builtIn\":\"AWS::S3::UseGlobalEndpoint\",\"required\":true,\"default\":false,\"documentation\":\"Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.\",\"type\":\"Boolean\"},\"UseObjectLambdaEndpoint\":{\"required\":false,\"documentation\":\"Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)\",\"type\":\"Boolean\"},\"DisableAccessPoints\":{\"required\":false,\"documentation\":\"Internal parameter to disable Access Point Buckets\",\"type\":\"Boolean\"},\"DisableMultiRegionAccessPoints\":{\"builtIn\":\"AWS::S3::DisableMultiRegionAccessPoints\",\"required\":true,\"default\":false,\"documentation\":\"Whether multi-region access points (MRAP) should be disabled.\",\"type\":\"Boolean\"},\"UseArnRegion\":{\"builtIn\":\"AWS::S3::UseArnRegion\",\"required\":false,\"documentation\":\"When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},49,50,true],\"assign\":\"hardwareType\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},8,12,true],\"assign\":\"regionPrefix\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},0,7,true],\"assign\":\"abbaSuffix\"},{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},32,49,true],\"assign\":\"outpostId\"},{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"regionPartition\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"abbaSuffix\"},\"--op-s3\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"hardwareType\"},\"e\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"regionPrefix\"},\"beta\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"error\":\"Expected a endpoint to be specified but no endpoint was found\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{Bucket}.ec2.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"hardwareType\"},\"o\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"regionPrefix\"},\"beta\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"error\":\"Expected a endpoint to be specified but no endpoint was found\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{Bucket}.op-{outpostId}.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}]}],\"error\":\"Custom endpoint `{Endpoint}` was not a valid URI\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"ForcePathStyle\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"ForcePathStyle\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}]}],\"error\":\"Path-style addressing cannot be used with ARN buckets\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"uriEncode\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"uri_encoded_bucket\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"Cannot set dual-stack in combination with a custom endpoint.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with FIPS\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with S3 Accelerate\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[{\"fn\":\"aws.isVirtualHostableS3Bucket\",\"argv\":[{\"ref\":\"Bucket\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Accelerate cannot be used with FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"S3 Accelerate cannot be used in this region\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"isIp\"]},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"url\"},\"scheme\"]},\"http\"]},{\"fn\":\"aws.isVirtualHostableS3Bucket\",\"argv\":[{\"ref\":\"Bucket\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{Bucket}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"bucketArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-object-lambda\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"accessPointName\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"accessPointName\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Object Lambda does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Object Lambda does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"DisableAccessPoints\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableAccessPoints\"},true]}],\"error\":\"Access points are not supported for this operation\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"]}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},\"\"]}],\"error\":\"Invalid ARN: Missing account id\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: bucket ARN is missing a region\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"accessPointName\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"accessPointName\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"DisableAccessPoints\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableAccessPoints\"},true]}],\"error\":\"Access points are not supported for this operation\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"]}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"{partitionResult#name}\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"Access Points do not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"DualStack cannot be combined with a Host override (PrivateLink)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: bucket ARN is missing a region\",\"type\":\"error\"}]}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"accessPointName\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 MRAP does not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"S3 MRAP does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 MRAP does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"DisableMultiRegionAccessPoints\"},true]}],\"error\":\"Invalid configuration: Multi-Region Access Point ARNs are disabled.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"mrapPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"mrapPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"partition\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4a\",\"signingName\":\"s3\",\"signingRegionSet\":[\"*\"]}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"{Region} was not a valid region\",\"type\":\"error\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid Access Point Name\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Outposts does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"S3 Outposts does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Outposts does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[4]\"]}]}],\"error\":\"Invalid Arn: Outpost Access Point ARN contains sub resources\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"bucketPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[3]\"],\"assign\":\"accessPointName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Expected an outpost type `accesspoint`, found {outpostType}\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected an access point name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region {bucketArn#region}\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"substring\",\"argv\":[{\"ref\":\"Bucket\"},0,4,false],\"assign\":\"arnPrefix\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnPrefix\"},\"arn:\"]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}]}]}]}],\"error\":\"Invalid ARN: `{Bucket}` was not a valid ARN\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"uriEncode\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"uri_encoded_bucket\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"error\":\"Cannot set dual-stack in combination with a custom endpoint.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with FIPS\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Path-style addressing cannot be used with S3 Accelerate\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseObjectLambdaEndpoint\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseObjectLambdaEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"S3 Object Lambda does not support Dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"Accelerate\"},true]}],\"error\":\"S3 Object Lambda does not support S3 Accelerate\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-object-lambda\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://s3.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},false]}],\"endpoint\":{\"url\":\"https://s3.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"A region must be set when sending requests to S3.\",\"type\":\"error\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSS3/Paginators.swift b/Sources/Services/AWSS3/Paginators.swift index ca5fecafb1b..2e63e2ec649 100644 --- a/Sources/Services/AWSS3/Paginators.swift +++ b/Sources/Services/AWSS3/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListObjectsV2OutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListObjectsV2Input]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListObjectsV2OutputResponse` extension S3Client { + /// Paginate over `[ListObjectsV2OutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListObjectsV2Input]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListObjectsV2OutputResponse` public func listObjectsV2Paginated(input: ListObjectsV2Input) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListObjectsV2Input.continuationToken, outputKey: \ListObjectsV2OutputResponse.nextContinuationToken, paginationFunction: self.listObjectsV2(input:)) } @@ -32,16 +31,15 @@ extension ListObjectsV2Input: ClientRuntime.PaginateToken { startAfter: self.startAfter )} } - -/// Paginate over `[ListPartsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPartsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPartsOutputResponse` extension S3Client { + /// Paginate over `[ListPartsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPartsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPartsOutputResponse` public func listPartsPaginated(input: ListPartsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPartsInput.partNumberMarker, outputKey: \ListPartsOutputResponse.nextPartNumberMarker, paginationFunction: self.listParts(input:)) } @@ -63,10 +61,10 @@ extension ListPartsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPartsPaginated` -/// to access the nested member `[S3ClientTypes.Part]` -/// - Returns: `[S3ClientTypes.Part]` extension PaginatorSequence where Input == ListPartsInput, Output == ListPartsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPartsPaginated` + /// to access the nested member `[S3ClientTypes.Part]` + /// - Returns: `[S3ClientTypes.Part]` public func parts() async throws -> [S3ClientTypes.Part] { return try await self.asyncCompactMap { item in item.parts } } diff --git a/Sources/Services/AWSS3Control/EndpointResolver.swift b/Sources/Services/AWSS3Control/EndpointResolver.swift index 6cd2f697b67..8f5ff7edc94 100644 --- a/Sources/Services/AWSS3Control/EndpointResolver.swift +++ b/Sources/Services/AWSS3Control/EndpointResolver.swift @@ -59,7 +59,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"AccountId\":{\"required\":false,\"documentation\":\"The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.\",\"type\":\"String\"},\"RequiresAccountId\":{\"required\":false,\"documentation\":\"Internal parameter for operations that require account id host prefix.\",\"type\":\"Boolean\"},\"OutpostId\":{\"required\":false,\"documentation\":\"The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.\",\"type\":\"String\"},\"Bucket\":{\"required\":false,\"documentation\":\"The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.\",\"type\":\"String\"},\"AccessPointName\":{\"required\":false,\"documentation\":\"The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.\",\"type\":\"String\"},\"UseArnRegion\":{\"builtIn\":\"AWS::S3Control::UseArnRegion\",\"required\":false,\"documentation\":\"When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"OutpostId\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}]}],\"error\":\"AccountId is required but not set\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"AccountId\"},false]}]}],\"error\":\"AccountId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"OutpostId\"},false]}]}],\"error\":\"OutpostId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outposts do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccessPointName\"}]},{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"AccessPointName\"}],\"assign\":\"accessPointArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outpost Access Points do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]}],\"assign\":\"arnPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"arnPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"accountId\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"AccountId\"},\"{accessPointArn#accountId}\"]}]}],\"error\":\"Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[3]\"],\"assign\":\"accessPointName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{accessPointArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{accessPointArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{accessPointArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Expected an outpost type `accesspoint`, found `{outpostType}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected an access point name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: missing account ID\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{accessPointArn#region}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]},{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"bucketArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outpost buckets do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"arnPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"arnPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"AccountId\"},\"{bucketArn#accountId}\"]}]}],\"error\":\"Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[3]\"],\"assign\":\"bucketName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"bucket\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{bucketArn#region}\",\"name\":\"sigv4\",\"signingName\":\"s3-outposts\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected a bucket name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: missing account ID\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}]}],\"error\":\"AccountId is required but not set\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"AccountId\"},false]}]}],\"error\":\"AccountId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"{url#scheme}://{AccountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://s3-control.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"s3\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Region must be set\",\"type\":\"error\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"AccountId\":{\"required\":false,\"documentation\":\"The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.\",\"type\":\"String\"},\"RequiresAccountId\":{\"required\":false,\"documentation\":\"Internal parameter for operations that require account id host prefix.\",\"type\":\"Boolean\"},\"OutpostId\":{\"required\":false,\"documentation\":\"The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.\",\"type\":\"String\"},\"Bucket\":{\"required\":false,\"documentation\":\"The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.\",\"type\":\"String\"},\"AccessPointName\":{\"required\":false,\"documentation\":\"The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.\",\"type\":\"String\"},\"UseArnRegion\":{\"builtIn\":\"AWS::S3Control::UseArnRegion\",\"required\":false,\"documentation\":\"When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"OutpostId\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}]}],\"error\":\"AccountId is required but not set\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"AccountId\"},false]}]}],\"error\":\"AccountId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"OutpostId\"},false]}]}],\"error\":\"OutpostId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outposts do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccessPointName\"}]},{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"AccessPointName\"}],\"assign\":\"accessPointArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outpost Access Points do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]}],\"assign\":\"arnPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"arnPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"accountId\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"AccountId\"},\"{accessPointArn#accountId}\"]}]}],\"error\":\"Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"accessPointArn\"},\"resourceId[3]\"],\"assign\":\"accessPointName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"accesspoint\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{accessPointArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{accessPointArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{accessPointArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{accessPointArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Expected an outpost type `accesspoint`, found `{outpostType}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected an access point name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: missing account ID\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{accessPointArn#region}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Bucket\"}]},{\"fn\":\"aws.parseArn\",\"argv\":[{\"ref\":\"Bucket\"}],\"assign\":\"bucketArn\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[0]\"],\"assign\":\"arnType\"},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"arnType\"},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"service\"]},\"s3-outposts\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid configuration: Outpost buckets do not support dual-stack\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[1]\"],\"assign\":\"outpostId\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"outpostId\"},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"UseArnRegion\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseArnRegion\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},\"{Region}\"]}]}],\"error\":\"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]}],\"assign\":\"arnPartition\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"arnPartition\"},\"name\"]},{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"region\"]},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},\"\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"accountId\"]},false]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"AccountId\"},\"{bucketArn#accountId}\"]}]}],\"error\":\"Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[2]\"],\"assign\":\"outpostType\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"bucketArn\"},\"resourceId[3]\"],\"assign\":\"bucketName\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"outpostType\"},\"bucket\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"endpoint\":{\"url\":\"https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3-outposts\",\"signingRegion\":\"{bucketArn#region}\"}]},\"headers\":{\"x-amz-account-id\":[\"{bucketArn#accountId}\"],\"x-amz-outpost-id\":[\"{outpostId}\"]}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: expected a bucket name\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: Expected a 4-component resource\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: missing account ID\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Could not load partition for ARN region `{bucketArn#region}`\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: The Outpost Id was not set\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Invalid ARN: No ARN type specified\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"partitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"Region\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"partitionResult\"},\"name\"]},\"aws-cn\"]}],\"error\":\"Partition does not support FIPS\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}]}],\"error\":\"AccountId is required but not set\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isValidHostLabel\",\"argv\":[{\"ref\":\"AccountId\"},false]}]}],\"error\":\"AccountId must only contain a-z, A-Z, 0-9 and `-`.\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"{url#scheme}://{AccountId}.{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"{url#scheme}://{url#authority}{url#path}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"endpoint\":{\"url\":\"https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"RequiresAccountId\"}]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"RequiresAccountId\"},true]},{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"AccountId\"}]}],\"endpoint\":{\"url\":\"https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"endpoint\":{\"url\":\"https://s3-control.{Region}.{partitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"disableDoubleEncoding\":true,\"name\":\"sigv4\",\"signingName\":\"s3\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}]}]}]},{\"conditions\":[],\"error\":\"Invalid region: region was not a valid DNS name.\",\"type\":\"error\"}]}]},{\"conditions\":[],\"error\":\"A valid partition could not be determined\",\"type\":\"error\"}]}]}]},{\"conditions\":[],\"error\":\"Region must be set\",\"type\":\"error\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSS3Control/Paginators.swift b/Sources/Services/AWSS3Control/Paginators.swift index 65582d15746..153712b0844 100644 --- a/Sources/Services/AWSS3Control/Paginators.swift +++ b/Sources/Services/AWSS3Control/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccessPointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessPointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessPointsOutputResponse` extension S3ControlClient { + /// Paginate over `[ListAccessPointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessPointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessPointsOutputResponse` public func listAccessPointsPaginated(input: ListAccessPointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessPointsInput.nextToken, outputKey: \ListAccessPointsOutputResponse.nextToken, paginationFunction: self.listAccessPoints(input:)) } @@ -26,16 +25,15 @@ extension ListAccessPointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAccessPointsForObjectLambdaOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessPointsForObjectLambdaInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessPointsForObjectLambdaOutputResponse` extension S3ControlClient { + /// Paginate over `[ListAccessPointsForObjectLambdaOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessPointsForObjectLambdaInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessPointsForObjectLambdaOutputResponse` public func listAccessPointsForObjectLambdaPaginated(input: ListAccessPointsForObjectLambdaInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessPointsForObjectLambdaInput.nextToken, outputKey: \ListAccessPointsForObjectLambdaOutputResponse.nextToken, paginationFunction: self.listAccessPointsForObjectLambda(input:)) } @@ -50,24 +48,23 @@ extension ListAccessPointsForObjectLambdaInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessPointsForObjectLambdaPaginated` -/// to access the nested member `[S3ControlClientTypes.ObjectLambdaAccessPoint]` -/// - Returns: `[S3ControlClientTypes.ObjectLambdaAccessPoint]` extension PaginatorSequence where Input == ListAccessPointsForObjectLambdaInput, Output == ListAccessPointsForObjectLambdaOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessPointsForObjectLambdaPaginated` + /// to access the nested member `[S3ControlClientTypes.ObjectLambdaAccessPoint]` + /// - Returns: `[S3ControlClientTypes.ObjectLambdaAccessPoint]` public func objectLambdaAccessPointList() async throws -> [S3ControlClientTypes.ObjectLambdaAccessPoint] { return try await self.asyncCompactMap { item in item.objectLambdaAccessPointList } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension S3ControlClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -82,16 +79,15 @@ extension ListJobsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListMultiRegionAccessPointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMultiRegionAccessPointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMultiRegionAccessPointsOutputResponse` extension S3ControlClient { + /// Paginate over `[ListMultiRegionAccessPointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMultiRegionAccessPointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMultiRegionAccessPointsOutputResponse` public func listMultiRegionAccessPointsPaginated(input: ListMultiRegionAccessPointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMultiRegionAccessPointsInput.nextToken, outputKey: \ListMultiRegionAccessPointsOutputResponse.nextToken, paginationFunction: self.listMultiRegionAccessPoints(input:)) } @@ -105,16 +101,15 @@ extension ListMultiRegionAccessPointsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListRegionalBucketsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRegionalBucketsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRegionalBucketsOutputResponse` extension S3ControlClient { + /// Paginate over `[ListRegionalBucketsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRegionalBucketsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRegionalBucketsOutputResponse` public func listRegionalBucketsPaginated(input: ListRegionalBucketsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRegionalBucketsInput.nextToken, outputKey: \ListRegionalBucketsOutputResponse.nextToken, paginationFunction: self.listRegionalBuckets(input:)) } @@ -129,16 +124,15 @@ extension ListRegionalBucketsInput: ClientRuntime.PaginateToken { outpostId: self.outpostId )} } - -/// Paginate over `[ListStorageLensConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStorageLensConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStorageLensConfigurationsOutputResponse` extension S3ControlClient { + /// Paginate over `[ListStorageLensConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStorageLensConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStorageLensConfigurationsOutputResponse` public func listStorageLensConfigurationsPaginated(input: ListStorageLensConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStorageLensConfigurationsInput.nextToken, outputKey: \ListStorageLensConfigurationsOutputResponse.nextToken, paginationFunction: self.listStorageLensConfigurations(input:)) } diff --git a/Sources/Services/AWSS3Outposts/Paginators.swift b/Sources/Services/AWSS3Outposts/Paginators.swift index beedf70707c..9ac94121669 100644 --- a/Sources/Services/AWSS3Outposts/Paginators.swift +++ b/Sources/Services/AWSS3Outposts/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` extension S3OutpostsClient { + /// Paginate over `[ListEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` public func listEndpointsPaginated(input: ListEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointsInput.nextToken, outputKey: \ListEndpointsOutputResponse.nextToken, paginationFunction: self.listEndpoints(input:)) } @@ -25,24 +24,23 @@ extension ListEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` -/// to access the nested member `[S3OutpostsClientTypes.Endpoint]` -/// - Returns: `[S3OutpostsClientTypes.Endpoint]` extension PaginatorSequence where Input == ListEndpointsInput, Output == ListEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` + /// to access the nested member `[S3OutpostsClientTypes.Endpoint]` + /// - Returns: `[S3OutpostsClientTypes.Endpoint]` public func endpoints() async throws -> [S3OutpostsClientTypes.Endpoint] { return try await self.asyncCompactMap { item in item.endpoints } } } - -/// Paginate over `[ListSharedEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSharedEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSharedEndpointsOutputResponse` extension S3OutpostsClient { + /// Paginate over `[ListSharedEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSharedEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSharedEndpointsOutputResponse` public func listSharedEndpointsPaginated(input: ListSharedEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSharedEndpointsInput.nextToken, outputKey: \ListSharedEndpointsOutputResponse.nextToken, paginationFunction: self.listSharedEndpoints(input:)) } @@ -57,10 +55,10 @@ extension ListSharedEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSharedEndpointsPaginated` -/// to access the nested member `[S3OutpostsClientTypes.Endpoint]` -/// - Returns: `[S3OutpostsClientTypes.Endpoint]` extension PaginatorSequence where Input == ListSharedEndpointsInput, Output == ListSharedEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSharedEndpointsPaginated` + /// to access the nested member `[S3OutpostsClientTypes.Endpoint]` + /// - Returns: `[S3OutpostsClientTypes.Endpoint]` public func endpoints() async throws -> [S3OutpostsClientTypes.Endpoint] { return try await self.asyncCompactMap { item in item.endpoints } } diff --git a/Sources/Services/AWSSES/Paginators.swift b/Sources/Services/AWSSES/Paginators.swift index 69ebf898894..64b73cef719 100644 --- a/Sources/Services/AWSSES/Paginators.swift +++ b/Sources/Services/AWSSES/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCustomVerificationEmailTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomVerificationEmailTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomVerificationEmailTemplatesOutputResponse` extension SESClient { + /// Paginate over `[ListCustomVerificationEmailTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomVerificationEmailTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomVerificationEmailTemplatesOutputResponse` public func listCustomVerificationEmailTemplatesPaginated(input: ListCustomVerificationEmailTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomVerificationEmailTemplatesInput.nextToken, outputKey: \ListCustomVerificationEmailTemplatesOutputResponse.nextToken, paginationFunction: self.listCustomVerificationEmailTemplates(input:)) } @@ -24,16 +23,15 @@ extension ListCustomVerificationEmailTemplatesInput: ClientRuntime.PaginateToken nextToken: token )} } - -/// Paginate over `[ListIdentitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentitiesOutputResponse` extension SESClient { + /// Paginate over `[ListIdentitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentitiesOutputResponse` public func listIdentitiesPaginated(input: ListIdentitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentitiesInput.nextToken, outputKey: \ListIdentitiesOutputResponse.nextToken, paginationFunction: self.listIdentities(input:)) } @@ -48,10 +46,10 @@ extension ListIdentitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIdentitiesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListIdentitiesInput, Output == ListIdentitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIdentitiesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func identities() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.identities } } diff --git a/Sources/Services/AWSSESv2/Paginators.swift b/Sources/Services/AWSSESv2/Paginators.swift index dd5c95c536a..5592f0ba7cb 100644 --- a/Sources/Services/AWSSESv2/Paginators.swift +++ b/Sources/Services/AWSSESv2/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetDedicatedIpsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDedicatedIpsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDedicatedIpsOutputResponse` extension SESv2Client { + /// Paginate over `[GetDedicatedIpsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDedicatedIpsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDedicatedIpsOutputResponse` public func getDedicatedIpsPaginated(input: GetDedicatedIpsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDedicatedIpsInput.nextToken, outputKey: \GetDedicatedIpsOutputResponse.nextToken, paginationFunction: self.getDedicatedIps(input:)) } @@ -25,16 +24,15 @@ extension GetDedicatedIpsInput: ClientRuntime.PaginateToken { poolName: self.poolName )} } - -/// Paginate over `[ListConfigurationSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConfigurationSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationSetsOutputResponse` extension SESv2Client { + /// Paginate over `[ListConfigurationSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConfigurationSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConfigurationSetsOutputResponse` public func listConfigurationSetsPaginated(input: ListConfigurationSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConfigurationSetsInput.nextToken, outputKey: \ListConfigurationSetsOutputResponse.nextToken, paginationFunction: self.listConfigurationSets(input:)) } @@ -47,16 +45,15 @@ extension ListConfigurationSetsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListContactListsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactListsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactListsOutputResponse` extension SESv2Client { + /// Paginate over `[ListContactListsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactListsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactListsOutputResponse` public func listContactListsPaginated(input: ListContactListsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactListsInput.nextToken, outputKey: \ListContactListsOutputResponse.nextToken, paginationFunction: self.listContactLists(input:)) } @@ -69,16 +66,15 @@ extension ListContactListsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListContactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactsOutputResponse` extension SESv2Client { + /// Paginate over `[ListContactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactsOutputResponse` public func listContactsPaginated(input: ListContactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactsInput.nextToken, outputKey: \ListContactsOutputResponse.nextToken, paginationFunction: self.listContacts(input:)) } @@ -93,16 +89,15 @@ extension ListContactsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListCustomVerificationEmailTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomVerificationEmailTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomVerificationEmailTemplatesOutputResponse` extension SESv2Client { + /// Paginate over `[ListCustomVerificationEmailTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomVerificationEmailTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomVerificationEmailTemplatesOutputResponse` public func listCustomVerificationEmailTemplatesPaginated(input: ListCustomVerificationEmailTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomVerificationEmailTemplatesInput.nextToken, outputKey: \ListCustomVerificationEmailTemplatesOutputResponse.nextToken, paginationFunction: self.listCustomVerificationEmailTemplates(input:)) } @@ -115,16 +110,15 @@ extension ListCustomVerificationEmailTemplatesInput: ClientRuntime.PaginateToken pageSize: self.pageSize )} } - -/// Paginate over `[ListDedicatedIpPoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDedicatedIpPoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDedicatedIpPoolsOutputResponse` extension SESv2Client { + /// Paginate over `[ListDedicatedIpPoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDedicatedIpPoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDedicatedIpPoolsOutputResponse` public func listDedicatedIpPoolsPaginated(input: ListDedicatedIpPoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDedicatedIpPoolsInput.nextToken, outputKey: \ListDedicatedIpPoolsOutputResponse.nextToken, paginationFunction: self.listDedicatedIpPools(input:)) } @@ -137,16 +131,15 @@ extension ListDedicatedIpPoolsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListDeliverabilityTestReportsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeliverabilityTestReportsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeliverabilityTestReportsOutputResponse` extension SESv2Client { + /// Paginate over `[ListDeliverabilityTestReportsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeliverabilityTestReportsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeliverabilityTestReportsOutputResponse` public func listDeliverabilityTestReportsPaginated(input: ListDeliverabilityTestReportsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeliverabilityTestReportsInput.nextToken, outputKey: \ListDeliverabilityTestReportsOutputResponse.nextToken, paginationFunction: self.listDeliverabilityTestReports(input:)) } @@ -159,16 +152,15 @@ extension ListDeliverabilityTestReportsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListDomainDeliverabilityCampaignsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainDeliverabilityCampaignsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainDeliverabilityCampaignsOutputResponse` extension SESv2Client { + /// Paginate over `[ListDomainDeliverabilityCampaignsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainDeliverabilityCampaignsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainDeliverabilityCampaignsOutputResponse` public func listDomainDeliverabilityCampaignsPaginated(input: ListDomainDeliverabilityCampaignsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainDeliverabilityCampaignsInput.nextToken, outputKey: \ListDomainDeliverabilityCampaignsOutputResponse.nextToken, paginationFunction: self.listDomainDeliverabilityCampaigns(input:)) } @@ -184,16 +176,15 @@ extension ListDomainDeliverabilityCampaignsInput: ClientRuntime.PaginateToken { subscribedDomain: self.subscribedDomain )} } - -/// Paginate over `[ListEmailIdentitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEmailIdentitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEmailIdentitiesOutputResponse` extension SESv2Client { + /// Paginate over `[ListEmailIdentitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEmailIdentitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEmailIdentitiesOutputResponse` public func listEmailIdentitiesPaginated(input: ListEmailIdentitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEmailIdentitiesInput.nextToken, outputKey: \ListEmailIdentitiesOutputResponse.nextToken, paginationFunction: self.listEmailIdentities(input:)) } @@ -206,16 +197,15 @@ extension ListEmailIdentitiesInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListEmailTemplatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEmailTemplatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEmailTemplatesOutputResponse` extension SESv2Client { + /// Paginate over `[ListEmailTemplatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEmailTemplatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEmailTemplatesOutputResponse` public func listEmailTemplatesPaginated(input: ListEmailTemplatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEmailTemplatesInput.nextToken, outputKey: \ListEmailTemplatesOutputResponse.nextToken, paginationFunction: self.listEmailTemplates(input:)) } @@ -228,16 +218,15 @@ extension ListEmailTemplatesInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListImportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImportJobsOutputResponse` extension SESv2Client { + /// Paginate over `[ListImportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImportJobsOutputResponse` public func listImportJobsPaginated(input: ListImportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImportJobsInput.nextToken, outputKey: \ListImportJobsOutputResponse.nextToken, paginationFunction: self.listImportJobs(input:)) } @@ -251,16 +240,15 @@ extension ListImportJobsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListRecommendationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRecommendationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` extension SESv2Client { + /// Paginate over `[ListRecommendationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRecommendationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRecommendationsOutputResponse` public func listRecommendationsPaginated(input: ListRecommendationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRecommendationsInput.nextToken, outputKey: \ListRecommendationsOutputResponse.nextToken, paginationFunction: self.listRecommendations(input:)) } @@ -274,16 +262,15 @@ extension ListRecommendationsInput: ClientRuntime.PaginateToken { pageSize: self.pageSize )} } - -/// Paginate over `[ListSuppressedDestinationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSuppressedDestinationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSuppressedDestinationsOutputResponse` extension SESv2Client { + /// Paginate over `[ListSuppressedDestinationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSuppressedDestinationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSuppressedDestinationsOutputResponse` public func listSuppressedDestinationsPaginated(input: ListSuppressedDestinationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSuppressedDestinationsInput.nextToken, outputKey: \ListSuppressedDestinationsOutputResponse.nextToken, paginationFunction: self.listSuppressedDestinations(input:)) } diff --git a/Sources/Services/AWSSFN/Paginators.swift b/Sources/Services/AWSSFN/Paginators.swift index 1f3536cfa95..712c3f17f56 100644 --- a/Sources/Services/AWSSFN/Paginators.swift +++ b/Sources/Services/AWSSFN/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetExecutionHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetExecutionHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetExecutionHistoryOutputResponse` extension SFNClient { + /// Paginate over `[GetExecutionHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetExecutionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetExecutionHistoryOutputResponse` public func getExecutionHistoryPaginated(input: GetExecutionHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetExecutionHistoryInput.nextToken, outputKey: \GetExecutionHistoryOutputResponse.nextToken, paginationFunction: self.getExecutionHistory(input:)) } @@ -28,24 +27,23 @@ extension GetExecutionHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getExecutionHistoryPaginated` -/// to access the nested member `[SFNClientTypes.HistoryEvent]` -/// - Returns: `[SFNClientTypes.HistoryEvent]` extension PaginatorSequence where Input == GetExecutionHistoryInput, Output == GetExecutionHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getExecutionHistoryPaginated` + /// to access the nested member `[SFNClientTypes.HistoryEvent]` + /// - Returns: `[SFNClientTypes.HistoryEvent]` public func events() async throws -> [SFNClientTypes.HistoryEvent] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[ListActivitiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActivitiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActivitiesOutputResponse` extension SFNClient { + /// Paginate over `[ListActivitiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActivitiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActivitiesOutputResponse` public func listActivitiesPaginated(input: ListActivitiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActivitiesInput.nextToken, outputKey: \ListActivitiesOutputResponse.nextToken, paginationFunction: self.listActivities(input:)) } @@ -59,24 +57,23 @@ extension ListActivitiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listActivitiesPaginated` -/// to access the nested member `[SFNClientTypes.ActivityListItem]` -/// - Returns: `[SFNClientTypes.ActivityListItem]` extension PaginatorSequence where Input == ListActivitiesInput, Output == ListActivitiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listActivitiesPaginated` + /// to access the nested member `[SFNClientTypes.ActivityListItem]` + /// - Returns: `[SFNClientTypes.ActivityListItem]` public func activities() async throws -> [SFNClientTypes.ActivityListItem] { return try await self.asyncCompactMap { item in item.activities } } } - -/// Paginate over `[ListExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExecutionsOutputResponse` extension SFNClient { + /// Paginate over `[ListExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExecutionsOutputResponse` public func listExecutionsPaginated(input: ListExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExecutionsInput.nextToken, outputKey: \ListExecutionsOutputResponse.nextToken, paginationFunction: self.listExecutions(input:)) } @@ -93,24 +90,23 @@ extension ListExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExecutionsPaginated` -/// to access the nested member `[SFNClientTypes.ExecutionListItem]` -/// - Returns: `[SFNClientTypes.ExecutionListItem]` extension PaginatorSequence where Input == ListExecutionsInput, Output == ListExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExecutionsPaginated` + /// to access the nested member `[SFNClientTypes.ExecutionListItem]` + /// - Returns: `[SFNClientTypes.ExecutionListItem]` public func executions() async throws -> [SFNClientTypes.ExecutionListItem] { return try await self.asyncCompactMap { item in item.executions } } } - -/// Paginate over `[ListMapRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMapRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMapRunsOutputResponse` extension SFNClient { + /// Paginate over `[ListMapRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMapRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMapRunsOutputResponse` public func listMapRunsPaginated(input: ListMapRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMapRunsInput.nextToken, outputKey: \ListMapRunsOutputResponse.nextToken, paginationFunction: self.listMapRuns(input:)) } @@ -125,24 +121,23 @@ extension ListMapRunsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMapRunsPaginated` -/// to access the nested member `[SFNClientTypes.MapRunListItem]` -/// - Returns: `[SFNClientTypes.MapRunListItem]` extension PaginatorSequence where Input == ListMapRunsInput, Output == ListMapRunsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMapRunsPaginated` + /// to access the nested member `[SFNClientTypes.MapRunListItem]` + /// - Returns: `[SFNClientTypes.MapRunListItem]` public func mapRuns() async throws -> [SFNClientTypes.MapRunListItem] { return try await self.asyncCompactMap { item in item.mapRuns } } } - -/// Paginate over `[ListStateMachinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStateMachinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStateMachinesOutputResponse` extension SFNClient { + /// Paginate over `[ListStateMachinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStateMachinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStateMachinesOutputResponse` public func listStateMachinesPaginated(input: ListStateMachinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStateMachinesInput.nextToken, outputKey: \ListStateMachinesOutputResponse.nextToken, paginationFunction: self.listStateMachines(input:)) } @@ -156,10 +151,10 @@ extension ListStateMachinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStateMachinesPaginated` -/// to access the nested member `[SFNClientTypes.StateMachineListItem]` -/// - Returns: `[SFNClientTypes.StateMachineListItem]` extension PaginatorSequence where Input == ListStateMachinesInput, Output == ListStateMachinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStateMachinesPaginated` + /// to access the nested member `[SFNClientTypes.StateMachineListItem]` + /// - Returns: `[SFNClientTypes.StateMachineListItem]` public func stateMachines() async throws -> [SFNClientTypes.StateMachineListItem] { return try await self.asyncCompactMap { item in item.stateMachines } } diff --git a/Sources/Services/AWSSMS/Paginators.swift b/Sources/Services/AWSSMS/Paginators.swift index 4839292644f..b250b42d2c0 100644 --- a/Sources/Services/AWSSMS/Paginators.swift +++ b/Sources/Services/AWSSMS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetConnectorsOutputResponse` extension SMSClient { + /// Paginate over `[GetConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetConnectorsOutputResponse` public func getConnectorsPaginated(input: GetConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetConnectorsInput.nextToken, outputKey: \GetConnectorsOutputResponse.nextToken, paginationFunction: self.getConnectors(input:)) } @@ -25,24 +24,23 @@ extension GetConnectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getConnectorsPaginated` -/// to access the nested member `[SMSClientTypes.Connector]` -/// - Returns: `[SMSClientTypes.Connector]` extension PaginatorSequence where Input == GetConnectorsInput, Output == GetConnectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getConnectorsPaginated` + /// to access the nested member `[SMSClientTypes.Connector]` + /// - Returns: `[SMSClientTypes.Connector]` public func connectorList() async throws -> [SMSClientTypes.Connector] { return try await self.asyncCompactMap { item in item.connectorList } } } - -/// Paginate over `[GetReplicationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReplicationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReplicationJobsOutputResponse` extension SMSClient { + /// Paginate over `[GetReplicationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReplicationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReplicationJobsOutputResponse` public func getReplicationJobsPaginated(input: GetReplicationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReplicationJobsInput.nextToken, outputKey: \GetReplicationJobsOutputResponse.nextToken, paginationFunction: self.getReplicationJobs(input:)) } @@ -57,24 +55,23 @@ extension GetReplicationJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getReplicationJobsPaginated` -/// to access the nested member `[SMSClientTypes.ReplicationJob]` -/// - Returns: `[SMSClientTypes.ReplicationJob]` extension PaginatorSequence where Input == GetReplicationJobsInput, Output == GetReplicationJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReplicationJobsPaginated` + /// to access the nested member `[SMSClientTypes.ReplicationJob]` + /// - Returns: `[SMSClientTypes.ReplicationJob]` public func replicationJobList() async throws -> [SMSClientTypes.ReplicationJob] { return try await self.asyncCompactMap { item in item.replicationJobList } } } - -/// Paginate over `[GetReplicationRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetReplicationRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetReplicationRunsOutputResponse` extension SMSClient { + /// Paginate over `[GetReplicationRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetReplicationRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetReplicationRunsOutputResponse` public func getReplicationRunsPaginated(input: GetReplicationRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetReplicationRunsInput.nextToken, outputKey: \GetReplicationRunsOutputResponse.nextToken, paginationFunction: self.getReplicationRuns(input:)) } @@ -89,24 +86,23 @@ extension GetReplicationRunsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getReplicationRunsPaginated` -/// to access the nested member `[SMSClientTypes.ReplicationRun]` -/// - Returns: `[SMSClientTypes.ReplicationRun]` extension PaginatorSequence where Input == GetReplicationRunsInput, Output == GetReplicationRunsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getReplicationRunsPaginated` + /// to access the nested member `[SMSClientTypes.ReplicationRun]` + /// - Returns: `[SMSClientTypes.ReplicationRun]` public func replicationRunList() async throws -> [SMSClientTypes.ReplicationRun] { return try await self.asyncCompactMap { item in item.replicationRunList } } } - -/// Paginate over `[GetServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetServersOutputResponse` extension SMSClient { + /// Paginate over `[GetServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetServersOutputResponse` public func getServersPaginated(input: GetServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetServersInput.nextToken, outputKey: \GetServersOutputResponse.nextToken, paginationFunction: self.getServers(input:)) } @@ -121,10 +117,10 @@ extension GetServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getServersPaginated` -/// to access the nested member `[SMSClientTypes.Server]` -/// - Returns: `[SMSClientTypes.Server]` extension PaginatorSequence where Input == GetServersInput, Output == GetServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getServersPaginated` + /// to access the nested member `[SMSClientTypes.Server]` + /// - Returns: `[SMSClientTypes.Server]` public func serverList() async throws -> [SMSClientTypes.Server] { return try await self.asyncCompactMap { item in item.serverList } } diff --git a/Sources/Services/AWSSNS/Paginators.swift b/Sources/Services/AWSSNS/Paginators.swift index a956e7c5843..1030aedd27f 100644 --- a/Sources/Services/AWSSNS/Paginators.swift +++ b/Sources/Services/AWSSNS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListEndpointsByPlatformApplicationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointsByPlatformApplicationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsByPlatformApplicationOutputResponse` extension SNSClient { + /// Paginate over `[ListEndpointsByPlatformApplicationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointsByPlatformApplicationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsByPlatformApplicationOutputResponse` public func listEndpointsByPlatformApplicationPaginated(input: ListEndpointsByPlatformApplicationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointsByPlatformApplicationInput.nextToken, outputKey: \ListEndpointsByPlatformApplicationOutputResponse.nextToken, paginationFunction: self.listEndpointsByPlatformApplication(input:)) } @@ -25,24 +24,23 @@ extension ListEndpointsByPlatformApplicationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointsByPlatformApplicationPaginated` -/// to access the nested member `[SNSClientTypes.Endpoint]` -/// - Returns: `[SNSClientTypes.Endpoint]` extension PaginatorSequence where Input == ListEndpointsByPlatformApplicationInput, Output == ListEndpointsByPlatformApplicationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointsByPlatformApplicationPaginated` + /// to access the nested member `[SNSClientTypes.Endpoint]` + /// - Returns: `[SNSClientTypes.Endpoint]` public func endpoints() async throws -> [SNSClientTypes.Endpoint] { return try await self.asyncCompactMap { item in item.endpoints } } } - -/// Paginate over `[ListOriginationNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOriginationNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOriginationNumbersOutputResponse` extension SNSClient { + /// Paginate over `[ListOriginationNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOriginationNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOriginationNumbersOutputResponse` public func listOriginationNumbersPaginated(input: ListOriginationNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOriginationNumbersInput.nextToken, outputKey: \ListOriginationNumbersOutputResponse.nextToken, paginationFunction: self.listOriginationNumbers(input:)) } @@ -56,24 +54,23 @@ extension ListOriginationNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOriginationNumbersPaginated` -/// to access the nested member `[SNSClientTypes.PhoneNumberInformation]` -/// - Returns: `[SNSClientTypes.PhoneNumberInformation]` extension PaginatorSequence where Input == ListOriginationNumbersInput, Output == ListOriginationNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOriginationNumbersPaginated` + /// to access the nested member `[SNSClientTypes.PhoneNumberInformation]` + /// - Returns: `[SNSClientTypes.PhoneNumberInformation]` public func phoneNumbers() async throws -> [SNSClientTypes.PhoneNumberInformation] { return try await self.asyncCompactMap { item in item.phoneNumbers } } } - -/// Paginate over `[ListPhoneNumbersOptedOutOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPhoneNumbersOptedOutInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOptedOutOutputResponse` extension SNSClient { + /// Paginate over `[ListPhoneNumbersOptedOutOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPhoneNumbersOptedOutInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPhoneNumbersOptedOutOutputResponse` public func listPhoneNumbersOptedOutPaginated(input: ListPhoneNumbersOptedOutInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPhoneNumbersOptedOutInput.nextToken, outputKey: \ListPhoneNumbersOptedOutOutputResponse.nextToken, paginationFunction: self.listPhoneNumbersOptedOut(input:)) } @@ -86,24 +83,23 @@ extension ListPhoneNumbersOptedOutInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersOptedOutPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListPhoneNumbersOptedOutInput, Output == ListPhoneNumbersOptedOutOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPhoneNumbersOptedOutPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func phoneNumbers() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.phoneNumbers } } } - -/// Paginate over `[ListPlatformApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPlatformApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPlatformApplicationsOutputResponse` extension SNSClient { + /// Paginate over `[ListPlatformApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPlatformApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPlatformApplicationsOutputResponse` public func listPlatformApplicationsPaginated(input: ListPlatformApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPlatformApplicationsInput.nextToken, outputKey: \ListPlatformApplicationsOutputResponse.nextToken, paginationFunction: self.listPlatformApplications(input:)) } @@ -116,24 +112,23 @@ extension ListPlatformApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPlatformApplicationsPaginated` -/// to access the nested member `[SNSClientTypes.PlatformApplication]` -/// - Returns: `[SNSClientTypes.PlatformApplication]` extension PaginatorSequence where Input == ListPlatformApplicationsInput, Output == ListPlatformApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPlatformApplicationsPaginated` + /// to access the nested member `[SNSClientTypes.PlatformApplication]` + /// - Returns: `[SNSClientTypes.PlatformApplication]` public func platformApplications() async throws -> [SNSClientTypes.PlatformApplication] { return try await self.asyncCompactMap { item in item.platformApplications } } } - -/// Paginate over `[ListSMSSandboxPhoneNumbersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSMSSandboxPhoneNumbersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSMSSandboxPhoneNumbersOutputResponse` extension SNSClient { + /// Paginate over `[ListSMSSandboxPhoneNumbersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSMSSandboxPhoneNumbersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSMSSandboxPhoneNumbersOutputResponse` public func listSMSSandboxPhoneNumbersPaginated(input: ListSMSSandboxPhoneNumbersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSMSSandboxPhoneNumbersInput.nextToken, outputKey: \ListSMSSandboxPhoneNumbersOutputResponse.nextToken, paginationFunction: self.listSMSSandboxPhoneNumbers(input:)) } @@ -147,24 +142,23 @@ extension ListSMSSandboxPhoneNumbersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSMSSandboxPhoneNumbersPaginated` -/// to access the nested member `[SNSClientTypes.SMSSandboxPhoneNumber]` -/// - Returns: `[SNSClientTypes.SMSSandboxPhoneNumber]` extension PaginatorSequence where Input == ListSMSSandboxPhoneNumbersInput, Output == ListSMSSandboxPhoneNumbersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSMSSandboxPhoneNumbersPaginated` + /// to access the nested member `[SNSClientTypes.SMSSandboxPhoneNumber]` + /// - Returns: `[SNSClientTypes.SMSSandboxPhoneNumber]` public func phoneNumbers() async throws -> [SNSClientTypes.SMSSandboxPhoneNumber] { return try await self.asyncCompactMap { item in item.phoneNumbers } } } - -/// Paginate over `[ListSubscriptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSubscriptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSubscriptionsOutputResponse` extension SNSClient { + /// Paginate over `[ListSubscriptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSubscriptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSubscriptionsOutputResponse` public func listSubscriptionsPaginated(input: ListSubscriptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSubscriptionsInput.nextToken, outputKey: \ListSubscriptionsOutputResponse.nextToken, paginationFunction: self.listSubscriptions(input:)) } @@ -177,24 +171,23 @@ extension ListSubscriptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSubscriptionsPaginated` -/// to access the nested member `[SNSClientTypes.Subscription]` -/// - Returns: `[SNSClientTypes.Subscription]` extension PaginatorSequence where Input == ListSubscriptionsInput, Output == ListSubscriptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSubscriptionsPaginated` + /// to access the nested member `[SNSClientTypes.Subscription]` + /// - Returns: `[SNSClientTypes.Subscription]` public func subscriptions() async throws -> [SNSClientTypes.Subscription] { return try await self.asyncCompactMap { item in item.subscriptions } } } - -/// Paginate over `[ListSubscriptionsByTopicOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSubscriptionsByTopicInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSubscriptionsByTopicOutputResponse` extension SNSClient { + /// Paginate over `[ListSubscriptionsByTopicOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSubscriptionsByTopicInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSubscriptionsByTopicOutputResponse` public func listSubscriptionsByTopicPaginated(input: ListSubscriptionsByTopicInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSubscriptionsByTopicInput.nextToken, outputKey: \ListSubscriptionsByTopicOutputResponse.nextToken, paginationFunction: self.listSubscriptionsByTopic(input:)) } @@ -208,24 +201,23 @@ extension ListSubscriptionsByTopicInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSubscriptionsByTopicPaginated` -/// to access the nested member `[SNSClientTypes.Subscription]` -/// - Returns: `[SNSClientTypes.Subscription]` extension PaginatorSequence where Input == ListSubscriptionsByTopicInput, Output == ListSubscriptionsByTopicOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSubscriptionsByTopicPaginated` + /// to access the nested member `[SNSClientTypes.Subscription]` + /// - Returns: `[SNSClientTypes.Subscription]` public func subscriptions() async throws -> [SNSClientTypes.Subscription] { return try await self.asyncCompactMap { item in item.subscriptions } } } - -/// Paginate over `[ListTopicsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTopicsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTopicsOutputResponse` extension SNSClient { + /// Paginate over `[ListTopicsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTopicsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTopicsOutputResponse` public func listTopicsPaginated(input: ListTopicsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTopicsInput.nextToken, outputKey: \ListTopicsOutputResponse.nextToken, paginationFunction: self.listTopics(input:)) } @@ -238,10 +230,10 @@ extension ListTopicsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTopicsPaginated` -/// to access the nested member `[SNSClientTypes.Topic]` -/// - Returns: `[SNSClientTypes.Topic]` extension PaginatorSequence where Input == ListTopicsInput, Output == ListTopicsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTopicsPaginated` + /// to access the nested member `[SNSClientTypes.Topic]` + /// - Returns: `[SNSClientTypes.Topic]` public func topics() async throws -> [SNSClientTypes.Topic] { return try await self.asyncCompactMap { item in item.topics } } diff --git a/Sources/Services/AWSSQS/Paginators.swift b/Sources/Services/AWSSQS/Paginators.swift index ae3ac7a8049..a87c8aa9383 100644 --- a/Sources/Services/AWSSQS/Paginators.swift +++ b/Sources/Services/AWSSQS/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDeadLetterSourceQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeadLetterSourceQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeadLetterSourceQueuesOutputResponse` extension SQSClient { + /// Paginate over `[ListDeadLetterSourceQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeadLetterSourceQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeadLetterSourceQueuesOutputResponse` public func listDeadLetterSourceQueuesPaginated(input: ListDeadLetterSourceQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeadLetterSourceQueuesInput.nextToken, outputKey: \ListDeadLetterSourceQueuesOutputResponse.nextToken, paginationFunction: self.listDeadLetterSourceQueues(input:)) } @@ -26,24 +25,23 @@ extension ListDeadLetterSourceQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeadLetterSourceQueuesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListDeadLetterSourceQueuesInput, Output == ListDeadLetterSourceQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeadLetterSourceQueuesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func queueUrls() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.queueUrls } } } - -/// Paginate over `[ListQueuesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListQueuesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` extension SQSClient { + /// Paginate over `[ListQueuesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListQueuesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListQueuesOutputResponse` public func listQueuesPaginated(input: ListQueuesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListQueuesInput.nextToken, outputKey: \ListQueuesOutputResponse.nextToken, paginationFunction: self.listQueues(input:)) } @@ -58,10 +56,10 @@ extension ListQueuesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListQueuesInput, Output == ListQueuesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listQueuesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func queueUrls() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.queueUrls } } diff --git a/Sources/Services/AWSSSM/Paginators.swift b/Sources/Services/AWSSSM/Paginators.swift index d74dd4bf392..3c186ee5f82 100644 --- a/Sources/Services/AWSSSM/Paginators.swift +++ b/Sources/Services/AWSSSM/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeActivationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeActivationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeActivationsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeActivationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeActivationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeActivationsOutputResponse` public func describeActivationsPaginated(input: DescribeActivationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeActivationsInput.nextToken, outputKey: \DescribeActivationsOutputResponse.nextToken, paginationFunction: self.describeActivations(input:)) } @@ -26,24 +25,23 @@ extension DescribeActivationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeActivationsPaginated` -/// to access the nested member `[SSMClientTypes.Activation]` -/// - Returns: `[SSMClientTypes.Activation]` extension PaginatorSequence where Input == DescribeActivationsInput, Output == DescribeActivationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeActivationsPaginated` + /// to access the nested member `[SSMClientTypes.Activation]` + /// - Returns: `[SSMClientTypes.Activation]` public func activationList() async throws -> [SSMClientTypes.Activation] { return try await self.asyncCompactMap { item in item.activationList } } } - -/// Paginate over `[DescribeAssociationExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAssociationExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAssociationExecutionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeAssociationExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAssociationExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAssociationExecutionsOutputResponse` public func describeAssociationExecutionsPaginated(input: DescribeAssociationExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAssociationExecutionsInput.nextToken, outputKey: \DescribeAssociationExecutionsOutputResponse.nextToken, paginationFunction: self.describeAssociationExecutions(input:)) } @@ -59,24 +57,23 @@ extension DescribeAssociationExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAssociationExecutionsPaginated` -/// to access the nested member `[SSMClientTypes.AssociationExecution]` -/// - Returns: `[SSMClientTypes.AssociationExecution]` extension PaginatorSequence where Input == DescribeAssociationExecutionsInput, Output == DescribeAssociationExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAssociationExecutionsPaginated` + /// to access the nested member `[SSMClientTypes.AssociationExecution]` + /// - Returns: `[SSMClientTypes.AssociationExecution]` public func associationExecutions() async throws -> [SSMClientTypes.AssociationExecution] { return try await self.asyncCompactMap { item in item.associationExecutions } } } - -/// Paginate over `[DescribeAssociationExecutionTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAssociationExecutionTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAssociationExecutionTargetsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeAssociationExecutionTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAssociationExecutionTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAssociationExecutionTargetsOutputResponse` public func describeAssociationExecutionTargetsPaginated(input: DescribeAssociationExecutionTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAssociationExecutionTargetsInput.nextToken, outputKey: \DescribeAssociationExecutionTargetsOutputResponse.nextToken, paginationFunction: self.describeAssociationExecutionTargets(input:)) } @@ -93,24 +90,23 @@ extension DescribeAssociationExecutionTargetsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAssociationExecutionTargetsPaginated` -/// to access the nested member `[SSMClientTypes.AssociationExecutionTarget]` -/// - Returns: `[SSMClientTypes.AssociationExecutionTarget]` extension PaginatorSequence where Input == DescribeAssociationExecutionTargetsInput, Output == DescribeAssociationExecutionTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAssociationExecutionTargetsPaginated` + /// to access the nested member `[SSMClientTypes.AssociationExecutionTarget]` + /// - Returns: `[SSMClientTypes.AssociationExecutionTarget]` public func associationExecutionTargets() async throws -> [SSMClientTypes.AssociationExecutionTarget] { return try await self.asyncCompactMap { item in item.associationExecutionTargets } } } - -/// Paginate over `[DescribeAutomationExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAutomationExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAutomationExecutionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeAutomationExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAutomationExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAutomationExecutionsOutputResponse` public func describeAutomationExecutionsPaginated(input: DescribeAutomationExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAutomationExecutionsInput.nextToken, outputKey: \DescribeAutomationExecutionsOutputResponse.nextToken, paginationFunction: self.describeAutomationExecutions(input:)) } @@ -125,24 +121,23 @@ extension DescribeAutomationExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAutomationExecutionsPaginated` -/// to access the nested member `[SSMClientTypes.AutomationExecutionMetadata]` -/// - Returns: `[SSMClientTypes.AutomationExecutionMetadata]` extension PaginatorSequence where Input == DescribeAutomationExecutionsInput, Output == DescribeAutomationExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAutomationExecutionsPaginated` + /// to access the nested member `[SSMClientTypes.AutomationExecutionMetadata]` + /// - Returns: `[SSMClientTypes.AutomationExecutionMetadata]` public func automationExecutionMetadataList() async throws -> [SSMClientTypes.AutomationExecutionMetadata] { return try await self.asyncCompactMap { item in item.automationExecutionMetadataList } } } - -/// Paginate over `[DescribeAutomationStepExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAutomationStepExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAutomationStepExecutionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeAutomationStepExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAutomationStepExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAutomationStepExecutionsOutputResponse` public func describeAutomationStepExecutionsPaginated(input: DescribeAutomationStepExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAutomationStepExecutionsInput.nextToken, outputKey: \DescribeAutomationStepExecutionsOutputResponse.nextToken, paginationFunction: self.describeAutomationStepExecutions(input:)) } @@ -159,24 +154,23 @@ extension DescribeAutomationStepExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAutomationStepExecutionsPaginated` -/// to access the nested member `[SSMClientTypes.StepExecution]` -/// - Returns: `[SSMClientTypes.StepExecution]` extension PaginatorSequence where Input == DescribeAutomationStepExecutionsInput, Output == DescribeAutomationStepExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAutomationStepExecutionsPaginated` + /// to access the nested member `[SSMClientTypes.StepExecution]` + /// - Returns: `[SSMClientTypes.StepExecution]` public func stepExecutions() async throws -> [SSMClientTypes.StepExecution] { return try await self.asyncCompactMap { item in item.stepExecutions } } } - -/// Paginate over `[DescribeAvailablePatchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAvailablePatchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAvailablePatchesOutputResponse` extension SSMClient { + /// Paginate over `[DescribeAvailablePatchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAvailablePatchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAvailablePatchesOutputResponse` public func describeAvailablePatchesPaginated(input: DescribeAvailablePatchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAvailablePatchesInput.nextToken, outputKey: \DescribeAvailablePatchesOutputResponse.nextToken, paginationFunction: self.describeAvailablePatches(input:)) } @@ -191,24 +185,23 @@ extension DescribeAvailablePatchesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAvailablePatchesPaginated` -/// to access the nested member `[SSMClientTypes.Patch]` -/// - Returns: `[SSMClientTypes.Patch]` extension PaginatorSequence where Input == DescribeAvailablePatchesInput, Output == DescribeAvailablePatchesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAvailablePatchesPaginated` + /// to access the nested member `[SSMClientTypes.Patch]` + /// - Returns: `[SSMClientTypes.Patch]` public func patches() async throws -> [SSMClientTypes.Patch] { return try await self.asyncCompactMap { item in item.patches } } } - -/// Paginate over `[DescribeEffectiveInstanceAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEffectiveInstanceAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEffectiveInstanceAssociationsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeEffectiveInstanceAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEffectiveInstanceAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEffectiveInstanceAssociationsOutputResponse` public func describeEffectiveInstanceAssociationsPaginated(input: DescribeEffectiveInstanceAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEffectiveInstanceAssociationsInput.nextToken, outputKey: \DescribeEffectiveInstanceAssociationsOutputResponse.nextToken, paginationFunction: self.describeEffectiveInstanceAssociations(input:)) } @@ -223,24 +216,23 @@ extension DescribeEffectiveInstanceAssociationsInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEffectiveInstanceAssociationsPaginated` -/// to access the nested member `[SSMClientTypes.InstanceAssociation]` -/// - Returns: `[SSMClientTypes.InstanceAssociation]` extension PaginatorSequence where Input == DescribeEffectiveInstanceAssociationsInput, Output == DescribeEffectiveInstanceAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEffectiveInstanceAssociationsPaginated` + /// to access the nested member `[SSMClientTypes.InstanceAssociation]` + /// - Returns: `[SSMClientTypes.InstanceAssociation]` public func associations() async throws -> [SSMClientTypes.InstanceAssociation] { return try await self.asyncCompactMap { item in item.associations } } } - -/// Paginate over `[DescribeEffectivePatchesForPatchBaselineOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeEffectivePatchesForPatchBaselineInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeEffectivePatchesForPatchBaselineOutputResponse` extension SSMClient { + /// Paginate over `[DescribeEffectivePatchesForPatchBaselineOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeEffectivePatchesForPatchBaselineInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeEffectivePatchesForPatchBaselineOutputResponse` public func describeEffectivePatchesForPatchBaselinePaginated(input: DescribeEffectivePatchesForPatchBaselineInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeEffectivePatchesForPatchBaselineInput.nextToken, outputKey: \DescribeEffectivePatchesForPatchBaselineOutputResponse.nextToken, paginationFunction: self.describeEffectivePatchesForPatchBaseline(input:)) } @@ -255,24 +247,23 @@ extension DescribeEffectivePatchesForPatchBaselineInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `describeEffectivePatchesForPatchBaselinePaginated` -/// to access the nested member `[SSMClientTypes.EffectivePatch]` -/// - Returns: `[SSMClientTypes.EffectivePatch]` extension PaginatorSequence where Input == DescribeEffectivePatchesForPatchBaselineInput, Output == DescribeEffectivePatchesForPatchBaselineOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeEffectivePatchesForPatchBaselinePaginated` + /// to access the nested member `[SSMClientTypes.EffectivePatch]` + /// - Returns: `[SSMClientTypes.EffectivePatch]` public func effectivePatches() async throws -> [SSMClientTypes.EffectivePatch] { return try await self.asyncCompactMap { item in item.effectivePatches } } } - -/// Paginate over `[DescribeInstanceAssociationsStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceAssociationsStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceAssociationsStatusOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInstanceAssociationsStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceAssociationsStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceAssociationsStatusOutputResponse` public func describeInstanceAssociationsStatusPaginated(input: DescribeInstanceAssociationsStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceAssociationsStatusInput.nextToken, outputKey: \DescribeInstanceAssociationsStatusOutputResponse.nextToken, paginationFunction: self.describeInstanceAssociationsStatus(input:)) } @@ -287,24 +278,23 @@ extension DescribeInstanceAssociationsStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceAssociationsStatusPaginated` -/// to access the nested member `[SSMClientTypes.InstanceAssociationStatusInfo]` -/// - Returns: `[SSMClientTypes.InstanceAssociationStatusInfo]` extension PaginatorSequence where Input == DescribeInstanceAssociationsStatusInput, Output == DescribeInstanceAssociationsStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceAssociationsStatusPaginated` + /// to access the nested member `[SSMClientTypes.InstanceAssociationStatusInfo]` + /// - Returns: `[SSMClientTypes.InstanceAssociationStatusInfo]` public func instanceAssociationStatusInfos() async throws -> [SSMClientTypes.InstanceAssociationStatusInfo] { return try await self.asyncCompactMap { item in item.instanceAssociationStatusInfos } } } - -/// Paginate over `[DescribeInstanceInformationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstanceInformationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceInformationOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInstanceInformationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstanceInformationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstanceInformationOutputResponse` public func describeInstanceInformationPaginated(input: DescribeInstanceInformationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstanceInformationInput.nextToken, outputKey: \DescribeInstanceInformationOutputResponse.nextToken, paginationFunction: self.describeInstanceInformation(input:)) } @@ -320,24 +310,23 @@ extension DescribeInstanceInformationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstanceInformationPaginated` -/// to access the nested member `[SSMClientTypes.InstanceInformation]` -/// - Returns: `[SSMClientTypes.InstanceInformation]` extension PaginatorSequence where Input == DescribeInstanceInformationInput, Output == DescribeInstanceInformationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstanceInformationPaginated` + /// to access the nested member `[SSMClientTypes.InstanceInformation]` + /// - Returns: `[SSMClientTypes.InstanceInformation]` public func instanceInformationList() async throws -> [SSMClientTypes.InstanceInformation] { return try await self.asyncCompactMap { item in item.instanceInformationList } } } - -/// Paginate over `[DescribeInstancePatchesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstancePatchesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchesOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInstancePatchesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstancePatchesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchesOutputResponse` public func describeInstancePatchesPaginated(input: DescribeInstancePatchesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstancePatchesInput.nextToken, outputKey: \DescribeInstancePatchesOutputResponse.nextToken, paginationFunction: self.describeInstancePatches(input:)) } @@ -353,24 +342,23 @@ extension DescribeInstancePatchesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchesPaginated` -/// to access the nested member `[SSMClientTypes.PatchComplianceData]` -/// - Returns: `[SSMClientTypes.PatchComplianceData]` extension PaginatorSequence where Input == DescribeInstancePatchesInput, Output == DescribeInstancePatchesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchesPaginated` + /// to access the nested member `[SSMClientTypes.PatchComplianceData]` + /// - Returns: `[SSMClientTypes.PatchComplianceData]` public func patches() async throws -> [SSMClientTypes.PatchComplianceData] { return try await self.asyncCompactMap { item in item.patches } } } - -/// Paginate over `[DescribeInstancePatchStatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstancePatchStatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchStatesOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInstancePatchStatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstancePatchStatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchStatesOutputResponse` public func describeInstancePatchStatesPaginated(input: DescribeInstancePatchStatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstancePatchStatesInput.nextToken, outputKey: \DescribeInstancePatchStatesOutputResponse.nextToken, paginationFunction: self.describeInstancePatchStates(input:)) } @@ -385,24 +373,23 @@ extension DescribeInstancePatchStatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchStatesPaginated` -/// to access the nested member `[SSMClientTypes.InstancePatchState]` -/// - Returns: `[SSMClientTypes.InstancePatchState]` extension PaginatorSequence where Input == DescribeInstancePatchStatesInput, Output == DescribeInstancePatchStatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchStatesPaginated` + /// to access the nested member `[SSMClientTypes.InstancePatchState]` + /// - Returns: `[SSMClientTypes.InstancePatchState]` public func instancePatchStates() async throws -> [SSMClientTypes.InstancePatchState] { return try await self.asyncCompactMap { item in item.instancePatchStates } } } - -/// Paginate over `[DescribeInstancePatchStatesForPatchGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInstancePatchStatesForPatchGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchStatesForPatchGroupOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInstancePatchStatesForPatchGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInstancePatchStatesForPatchGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInstancePatchStatesForPatchGroupOutputResponse` public func describeInstancePatchStatesForPatchGroupPaginated(input: DescribeInstancePatchStatesForPatchGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInstancePatchStatesForPatchGroupInput.nextToken, outputKey: \DescribeInstancePatchStatesForPatchGroupOutputResponse.nextToken, paginationFunction: self.describeInstancePatchStatesForPatchGroup(input:)) } @@ -418,24 +405,23 @@ extension DescribeInstancePatchStatesForPatchGroupInput: ClientRuntime.PaginateT )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchStatesForPatchGroupPaginated` -/// to access the nested member `[SSMClientTypes.InstancePatchState]` -/// - Returns: `[SSMClientTypes.InstancePatchState]` extension PaginatorSequence where Input == DescribeInstancePatchStatesForPatchGroupInput, Output == DescribeInstancePatchStatesForPatchGroupOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInstancePatchStatesForPatchGroupPaginated` + /// to access the nested member `[SSMClientTypes.InstancePatchState]` + /// - Returns: `[SSMClientTypes.InstancePatchState]` public func instancePatchStates() async throws -> [SSMClientTypes.InstancePatchState] { return try await self.asyncCompactMap { item in item.instancePatchStates } } } - -/// Paginate over `[DescribeInventoryDeletionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeInventoryDeletionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeInventoryDeletionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeInventoryDeletionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeInventoryDeletionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeInventoryDeletionsOutputResponse` public func describeInventoryDeletionsPaginated(input: DescribeInventoryDeletionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeInventoryDeletionsInput.nextToken, outputKey: \DescribeInventoryDeletionsOutputResponse.nextToken, paginationFunction: self.describeInventoryDeletions(input:)) } @@ -450,24 +436,23 @@ extension DescribeInventoryDeletionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeInventoryDeletionsPaginated` -/// to access the nested member `[SSMClientTypes.InventoryDeletionStatusItem]` -/// - Returns: `[SSMClientTypes.InventoryDeletionStatusItem]` extension PaginatorSequence where Input == DescribeInventoryDeletionsInput, Output == DescribeInventoryDeletionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeInventoryDeletionsPaginated` + /// to access the nested member `[SSMClientTypes.InventoryDeletionStatusItem]` + /// - Returns: `[SSMClientTypes.InventoryDeletionStatusItem]` public func inventoryDeletions() async throws -> [SSMClientTypes.InventoryDeletionStatusItem] { return try await self.asyncCompactMap { item in item.inventoryDeletions } } } - -/// Paginate over `[DescribeMaintenanceWindowExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionsOutputResponse` public func describeMaintenanceWindowExecutionsPaginated(input: DescribeMaintenanceWindowExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowExecutionsInput.nextToken, outputKey: \DescribeMaintenanceWindowExecutionsOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowExecutions(input:)) } @@ -483,24 +468,23 @@ extension DescribeMaintenanceWindowExecutionsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionsPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowExecution]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowExecution]` extension PaginatorSequence where Input == DescribeMaintenanceWindowExecutionsInput, Output == DescribeMaintenanceWindowExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionsPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowExecution]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowExecution]` public func windowExecutions() async throws -> [SSMClientTypes.MaintenanceWindowExecution] { return try await self.asyncCompactMap { item in item.windowExecutions } } } - -/// Paginate over `[DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowExecutionTaskInvocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowExecutionTaskInvocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse` public func describeMaintenanceWindowExecutionTaskInvocationsPaginated(input: DescribeMaintenanceWindowExecutionTaskInvocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowExecutionTaskInvocationsInput.nextToken, outputKey: \DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowExecutionTaskInvocations(input:)) } @@ -517,24 +501,23 @@ extension DescribeMaintenanceWindowExecutionTaskInvocationsInput: ClientRuntime. )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionTaskInvocationsPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowExecutionTaskInvocationIdentity]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowExecutionTaskInvocationIdentity]` extension PaginatorSequence where Input == DescribeMaintenanceWindowExecutionTaskInvocationsInput, Output == DescribeMaintenanceWindowExecutionTaskInvocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionTaskInvocationsPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowExecutionTaskInvocationIdentity]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowExecutionTaskInvocationIdentity]` public func windowExecutionTaskInvocationIdentities() async throws -> [SSMClientTypes.MaintenanceWindowExecutionTaskInvocationIdentity] { return try await self.asyncCompactMap { item in item.windowExecutionTaskInvocationIdentities } } } - -/// Paginate over `[DescribeMaintenanceWindowExecutionTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowExecutionTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionTasksOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowExecutionTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowExecutionTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowExecutionTasksOutputResponse` public func describeMaintenanceWindowExecutionTasksPaginated(input: DescribeMaintenanceWindowExecutionTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowExecutionTasksInput.nextToken, outputKey: \DescribeMaintenanceWindowExecutionTasksOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowExecutionTasks(input:)) } @@ -550,24 +533,23 @@ extension DescribeMaintenanceWindowExecutionTasksInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionTasksPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowExecutionTaskIdentity]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowExecutionTaskIdentity]` extension PaginatorSequence where Input == DescribeMaintenanceWindowExecutionTasksInput, Output == DescribeMaintenanceWindowExecutionTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowExecutionTasksPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowExecutionTaskIdentity]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowExecutionTaskIdentity]` public func windowExecutionTaskIdentities() async throws -> [SSMClientTypes.MaintenanceWindowExecutionTaskIdentity] { return try await self.asyncCompactMap { item in item.windowExecutionTaskIdentities } } } - -/// Paginate over `[DescribeMaintenanceWindowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowsOutputResponse` public func describeMaintenanceWindowsPaginated(input: DescribeMaintenanceWindowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowsInput.nextToken, outputKey: \DescribeMaintenanceWindowsOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindows(input:)) } @@ -582,24 +564,23 @@ extension DescribeMaintenanceWindowsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowsPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowIdentity]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowIdentity]` extension PaginatorSequence where Input == DescribeMaintenanceWindowsInput, Output == DescribeMaintenanceWindowsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowsPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowIdentity]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowIdentity]` public func windowIdentities() async throws -> [SSMClientTypes.MaintenanceWindowIdentity] { return try await self.asyncCompactMap { item in item.windowIdentities } } } - -/// Paginate over `[DescribeMaintenanceWindowScheduleOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowScheduleInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowScheduleOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowScheduleOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowScheduleInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowScheduleOutputResponse` public func describeMaintenanceWindowSchedulePaginated(input: DescribeMaintenanceWindowScheduleInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowScheduleInput.nextToken, outputKey: \DescribeMaintenanceWindowScheduleOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowSchedule(input:)) } @@ -617,24 +598,23 @@ extension DescribeMaintenanceWindowScheduleInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowSchedulePaginated` -/// to access the nested member `[SSMClientTypes.ScheduledWindowExecution]` -/// - Returns: `[SSMClientTypes.ScheduledWindowExecution]` extension PaginatorSequence where Input == DescribeMaintenanceWindowScheduleInput, Output == DescribeMaintenanceWindowScheduleOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowSchedulePaginated` + /// to access the nested member `[SSMClientTypes.ScheduledWindowExecution]` + /// - Returns: `[SSMClientTypes.ScheduledWindowExecution]` public func scheduledWindowExecutions() async throws -> [SSMClientTypes.ScheduledWindowExecution] { return try await self.asyncCompactMap { item in item.scheduledWindowExecutions } } } - -/// Paginate over `[DescribeMaintenanceWindowsForTargetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowsForTargetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowsForTargetOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowsForTargetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowsForTargetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowsForTargetOutputResponse` public func describeMaintenanceWindowsForTargetPaginated(input: DescribeMaintenanceWindowsForTargetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowsForTargetInput.nextToken, outputKey: \DescribeMaintenanceWindowsForTargetOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowsForTarget(input:)) } @@ -650,24 +630,23 @@ extension DescribeMaintenanceWindowsForTargetInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowsForTargetPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowIdentityForTarget]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowIdentityForTarget]` extension PaginatorSequence where Input == DescribeMaintenanceWindowsForTargetInput, Output == DescribeMaintenanceWindowsForTargetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowsForTargetPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowIdentityForTarget]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowIdentityForTarget]` public func windowIdentities() async throws -> [SSMClientTypes.MaintenanceWindowIdentityForTarget] { return try await self.asyncCompactMap { item in item.windowIdentities } } } - -/// Paginate over `[DescribeMaintenanceWindowTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowTargetsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowTargetsOutputResponse` public func describeMaintenanceWindowTargetsPaginated(input: DescribeMaintenanceWindowTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowTargetsInput.nextToken, outputKey: \DescribeMaintenanceWindowTargetsOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowTargets(input:)) } @@ -683,24 +662,23 @@ extension DescribeMaintenanceWindowTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowTargetsPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowTarget]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowTarget]` extension PaginatorSequence where Input == DescribeMaintenanceWindowTargetsInput, Output == DescribeMaintenanceWindowTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowTargetsPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowTarget]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowTarget]` public func targets() async throws -> [SSMClientTypes.MaintenanceWindowTarget] { return try await self.asyncCompactMap { item in item.targets } } } - -/// Paginate over `[DescribeMaintenanceWindowTasksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeMaintenanceWindowTasksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowTasksOutputResponse` extension SSMClient { + /// Paginate over `[DescribeMaintenanceWindowTasksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeMaintenanceWindowTasksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeMaintenanceWindowTasksOutputResponse` public func describeMaintenanceWindowTasksPaginated(input: DescribeMaintenanceWindowTasksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeMaintenanceWindowTasksInput.nextToken, outputKey: \DescribeMaintenanceWindowTasksOutputResponse.nextToken, paginationFunction: self.describeMaintenanceWindowTasks(input:)) } @@ -716,24 +694,23 @@ extension DescribeMaintenanceWindowTasksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowTasksPaginated` -/// to access the nested member `[SSMClientTypes.MaintenanceWindowTask]` -/// - Returns: `[SSMClientTypes.MaintenanceWindowTask]` extension PaginatorSequence where Input == DescribeMaintenanceWindowTasksInput, Output == DescribeMaintenanceWindowTasksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeMaintenanceWindowTasksPaginated` + /// to access the nested member `[SSMClientTypes.MaintenanceWindowTask]` + /// - Returns: `[SSMClientTypes.MaintenanceWindowTask]` public func tasks() async throws -> [SSMClientTypes.MaintenanceWindowTask] { return try await self.asyncCompactMap { item in item.tasks } } } - -/// Paginate over `[DescribeOpsItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeOpsItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeOpsItemsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeOpsItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeOpsItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeOpsItemsOutputResponse` public func describeOpsItemsPaginated(input: DescribeOpsItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeOpsItemsInput.nextToken, outputKey: \DescribeOpsItemsOutputResponse.nextToken, paginationFunction: self.describeOpsItems(input:)) } @@ -748,24 +725,23 @@ extension DescribeOpsItemsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeOpsItemsPaginated` -/// to access the nested member `[SSMClientTypes.OpsItemSummary]` -/// - Returns: `[SSMClientTypes.OpsItemSummary]` extension PaginatorSequence where Input == DescribeOpsItemsInput, Output == DescribeOpsItemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeOpsItemsPaginated` + /// to access the nested member `[SSMClientTypes.OpsItemSummary]` + /// - Returns: `[SSMClientTypes.OpsItemSummary]` public func opsItemSummaries() async throws -> [SSMClientTypes.OpsItemSummary] { return try await self.asyncCompactMap { item in item.opsItemSummaries } } } - -/// Paginate over `[DescribeParametersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeParametersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeParametersOutputResponse` extension SSMClient { + /// Paginate over `[DescribeParametersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeParametersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeParametersOutputResponse` public func describeParametersPaginated(input: DescribeParametersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeParametersInput.nextToken, outputKey: \DescribeParametersOutputResponse.nextToken, paginationFunction: self.describeParameters(input:)) } @@ -780,16 +756,15 @@ extension DescribeParametersInput: ClientRuntime.PaginateToken { parameterFilters: self.parameterFilters )} } - -/// Paginate over `[DescribePatchBaselinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePatchBaselinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePatchBaselinesOutputResponse` extension SSMClient { + /// Paginate over `[DescribePatchBaselinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePatchBaselinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePatchBaselinesOutputResponse` public func describePatchBaselinesPaginated(input: DescribePatchBaselinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePatchBaselinesInput.nextToken, outputKey: \DescribePatchBaselinesOutputResponse.nextToken, paginationFunction: self.describePatchBaselines(input:)) } @@ -804,24 +779,23 @@ extension DescribePatchBaselinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePatchBaselinesPaginated` -/// to access the nested member `[SSMClientTypes.PatchBaselineIdentity]` -/// - Returns: `[SSMClientTypes.PatchBaselineIdentity]` extension PaginatorSequence where Input == DescribePatchBaselinesInput, Output == DescribePatchBaselinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePatchBaselinesPaginated` + /// to access the nested member `[SSMClientTypes.PatchBaselineIdentity]` + /// - Returns: `[SSMClientTypes.PatchBaselineIdentity]` public func baselineIdentities() async throws -> [SSMClientTypes.PatchBaselineIdentity] { return try await self.asyncCompactMap { item in item.baselineIdentities } } } - -/// Paginate over `[DescribePatchGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePatchGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePatchGroupsOutputResponse` extension SSMClient { + /// Paginate over `[DescribePatchGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePatchGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePatchGroupsOutputResponse` public func describePatchGroupsPaginated(input: DescribePatchGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePatchGroupsInput.nextToken, outputKey: \DescribePatchGroupsOutputResponse.nextToken, paginationFunction: self.describePatchGroups(input:)) } @@ -836,24 +810,23 @@ extension DescribePatchGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePatchGroupsPaginated` -/// to access the nested member `[SSMClientTypes.PatchGroupPatchBaselineMapping]` -/// - Returns: `[SSMClientTypes.PatchGroupPatchBaselineMapping]` extension PaginatorSequence where Input == DescribePatchGroupsInput, Output == DescribePatchGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePatchGroupsPaginated` + /// to access the nested member `[SSMClientTypes.PatchGroupPatchBaselineMapping]` + /// - Returns: `[SSMClientTypes.PatchGroupPatchBaselineMapping]` public func mappings() async throws -> [SSMClientTypes.PatchGroupPatchBaselineMapping] { return try await self.asyncCompactMap { item in item.mappings } } } - -/// Paginate over `[DescribePatchPropertiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePatchPropertiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePatchPropertiesOutputResponse` extension SSMClient { + /// Paginate over `[DescribePatchPropertiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePatchPropertiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePatchPropertiesOutputResponse` public func describePatchPropertiesPaginated(input: DescribePatchPropertiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePatchPropertiesInput.nextToken, outputKey: \DescribePatchPropertiesOutputResponse.nextToken, paginationFunction: self.describePatchProperties(input:)) } @@ -870,24 +843,23 @@ extension DescribePatchPropertiesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describePatchPropertiesPaginated` -/// to access the nested member `[[Swift.String:Swift.String]]` -/// - Returns: `[[Swift.String:Swift.String]]` extension PaginatorSequence where Input == DescribePatchPropertiesInput, Output == DescribePatchPropertiesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describePatchPropertiesPaginated` + /// to access the nested member `[[Swift.String:Swift.String]]` + /// - Returns: `[[Swift.String:Swift.String]]` public func properties() async throws -> [[Swift.String:Swift.String]] { return try await self.asyncCompactMap { item in item.properties } } } - -/// Paginate over `[DescribeSessionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeSessionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeSessionsOutputResponse` extension SSMClient { + /// Paginate over `[DescribeSessionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeSessionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeSessionsOutputResponse` public func describeSessionsPaginated(input: DescribeSessionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeSessionsInput.nextToken, outputKey: \DescribeSessionsOutputResponse.nextToken, paginationFunction: self.describeSessions(input:)) } @@ -903,24 +875,23 @@ extension DescribeSessionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeSessionsPaginated` -/// to access the nested member `[SSMClientTypes.Session]` -/// - Returns: `[SSMClientTypes.Session]` extension PaginatorSequence where Input == DescribeSessionsInput, Output == DescribeSessionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeSessionsPaginated` + /// to access the nested member `[SSMClientTypes.Session]` + /// - Returns: `[SSMClientTypes.Session]` public func sessions() async throws -> [SSMClientTypes.Session] { return try await self.asyncCompactMap { item in item.sessions } } } - -/// Paginate over `[GetInventoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInventoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInventoryOutputResponse` extension SSMClient { + /// Paginate over `[GetInventoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInventoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInventoryOutputResponse` public func getInventoryPaginated(input: GetInventoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInventoryInput.nextToken, outputKey: \GetInventoryOutputResponse.nextToken, paginationFunction: self.getInventory(input:)) } @@ -937,24 +908,23 @@ extension GetInventoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getInventoryPaginated` -/// to access the nested member `[SSMClientTypes.InventoryResultEntity]` -/// - Returns: `[SSMClientTypes.InventoryResultEntity]` extension PaginatorSequence where Input == GetInventoryInput, Output == GetInventoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getInventoryPaginated` + /// to access the nested member `[SSMClientTypes.InventoryResultEntity]` + /// - Returns: `[SSMClientTypes.InventoryResultEntity]` public func entities() async throws -> [SSMClientTypes.InventoryResultEntity] { return try await self.asyncCompactMap { item in item.entities } } } - -/// Paginate over `[GetInventorySchemaOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInventorySchemaInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInventorySchemaOutputResponse` extension SSMClient { + /// Paginate over `[GetInventorySchemaOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInventorySchemaInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInventorySchemaOutputResponse` public func getInventorySchemaPaginated(input: GetInventorySchemaInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInventorySchemaInput.nextToken, outputKey: \GetInventorySchemaOutputResponse.nextToken, paginationFunction: self.getInventorySchema(input:)) } @@ -971,24 +941,23 @@ extension GetInventorySchemaInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getInventorySchemaPaginated` -/// to access the nested member `[SSMClientTypes.InventoryItemSchema]` -/// - Returns: `[SSMClientTypes.InventoryItemSchema]` extension PaginatorSequence where Input == GetInventorySchemaInput, Output == GetInventorySchemaOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getInventorySchemaPaginated` + /// to access the nested member `[SSMClientTypes.InventoryItemSchema]` + /// - Returns: `[SSMClientTypes.InventoryItemSchema]` public func schemas() async throws -> [SSMClientTypes.InventoryItemSchema] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[GetOpsSummaryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetOpsSummaryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetOpsSummaryOutputResponse` extension SSMClient { + /// Paginate over `[GetOpsSummaryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetOpsSummaryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetOpsSummaryOutputResponse` public func getOpsSummaryPaginated(input: GetOpsSummaryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetOpsSummaryInput.nextToken, outputKey: \GetOpsSummaryOutputResponse.nextToken, paginationFunction: self.getOpsSummary(input:)) } @@ -1006,24 +975,23 @@ extension GetOpsSummaryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getOpsSummaryPaginated` -/// to access the nested member `[SSMClientTypes.OpsEntity]` -/// - Returns: `[SSMClientTypes.OpsEntity]` extension PaginatorSequence where Input == GetOpsSummaryInput, Output == GetOpsSummaryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getOpsSummaryPaginated` + /// to access the nested member `[SSMClientTypes.OpsEntity]` + /// - Returns: `[SSMClientTypes.OpsEntity]` public func entities() async throws -> [SSMClientTypes.OpsEntity] { return try await self.asyncCompactMap { item in item.entities } } } - -/// Paginate over `[GetParameterHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetParameterHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetParameterHistoryOutputResponse` extension SSMClient { + /// Paginate over `[GetParameterHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetParameterHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetParameterHistoryOutputResponse` public func getParameterHistoryPaginated(input: GetParameterHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetParameterHistoryInput.nextToken, outputKey: \GetParameterHistoryOutputResponse.nextToken, paginationFunction: self.getParameterHistory(input:)) } @@ -1038,16 +1006,15 @@ extension GetParameterHistoryInput: ClientRuntime.PaginateToken { withDecryption: self.withDecryption )} } - -/// Paginate over `[GetParametersByPathOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetParametersByPathInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetParametersByPathOutputResponse` extension SSMClient { + /// Paginate over `[GetParametersByPathOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetParametersByPathInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetParametersByPathOutputResponse` public func getParametersByPathPaginated(input: GetParametersByPathInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetParametersByPathInput.nextToken, outputKey: \GetParametersByPathOutputResponse.nextToken, paginationFunction: self.getParametersByPath(input:)) } @@ -1064,16 +1031,15 @@ extension GetParametersByPathInput: ClientRuntime.PaginateToken { withDecryption: self.withDecryption )} } - -/// Paginate over `[GetResourcePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` extension SSMClient { + /// Paginate over `[GetResourcePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` public func getResourcePoliciesPaginated(input: GetResourcePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcePoliciesInput.nextToken, outputKey: \GetResourcePoliciesOutputResponse.nextToken, paginationFunction: self.getResourcePolicies(input:)) } @@ -1088,24 +1054,23 @@ extension GetResourcePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` -/// to access the nested member `[SSMClientTypes.GetResourcePoliciesResponseEntry]` -/// - Returns: `[SSMClientTypes.GetResourcePoliciesResponseEntry]` extension PaginatorSequence where Input == GetResourcePoliciesInput, Output == GetResourcePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` + /// to access the nested member `[SSMClientTypes.GetResourcePoliciesResponseEntry]` + /// - Returns: `[SSMClientTypes.GetResourcePoliciesResponseEntry]` public func policies() async throws -> [SSMClientTypes.GetResourcePoliciesResponseEntry] { return try await self.asyncCompactMap { item in item.policies } } } - -/// Paginate over `[ListAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociationsOutputResponse` extension SSMClient { + /// Paginate over `[ListAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociationsOutputResponse` public func listAssociationsPaginated(input: ListAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociationsInput.nextToken, outputKey: \ListAssociationsOutputResponse.nextToken, paginationFunction: self.listAssociations(input:)) } @@ -1120,24 +1085,23 @@ extension ListAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociationsPaginated` -/// to access the nested member `[SSMClientTypes.Association]` -/// - Returns: `[SSMClientTypes.Association]` extension PaginatorSequence where Input == ListAssociationsInput, Output == ListAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociationsPaginated` + /// to access the nested member `[SSMClientTypes.Association]` + /// - Returns: `[SSMClientTypes.Association]` public func associations() async throws -> [SSMClientTypes.Association] { return try await self.asyncCompactMap { item in item.associations } } } - -/// Paginate over `[ListAssociationVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociationVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociationVersionsOutputResponse` extension SSMClient { + /// Paginate over `[ListAssociationVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociationVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociationVersionsOutputResponse` public func listAssociationVersionsPaginated(input: ListAssociationVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociationVersionsInput.nextToken, outputKey: \ListAssociationVersionsOutputResponse.nextToken, paginationFunction: self.listAssociationVersions(input:)) } @@ -1152,24 +1116,23 @@ extension ListAssociationVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociationVersionsPaginated` -/// to access the nested member `[SSMClientTypes.AssociationVersionInfo]` -/// - Returns: `[SSMClientTypes.AssociationVersionInfo]` extension PaginatorSequence where Input == ListAssociationVersionsInput, Output == ListAssociationVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociationVersionsPaginated` + /// to access the nested member `[SSMClientTypes.AssociationVersionInfo]` + /// - Returns: `[SSMClientTypes.AssociationVersionInfo]` public func associationVersions() async throws -> [SSMClientTypes.AssociationVersionInfo] { return try await self.asyncCompactMap { item in item.associationVersions } } } - -/// Paginate over `[ListCommandInvocationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCommandInvocationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCommandInvocationsOutputResponse` extension SSMClient { + /// Paginate over `[ListCommandInvocationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCommandInvocationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCommandInvocationsOutputResponse` public func listCommandInvocationsPaginated(input: ListCommandInvocationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCommandInvocationsInput.nextToken, outputKey: \ListCommandInvocationsOutputResponse.nextToken, paginationFunction: self.listCommandInvocations(input:)) } @@ -1187,24 +1150,23 @@ extension ListCommandInvocationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCommandInvocationsPaginated` -/// to access the nested member `[SSMClientTypes.CommandInvocation]` -/// - Returns: `[SSMClientTypes.CommandInvocation]` extension PaginatorSequence where Input == ListCommandInvocationsInput, Output == ListCommandInvocationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCommandInvocationsPaginated` + /// to access the nested member `[SSMClientTypes.CommandInvocation]` + /// - Returns: `[SSMClientTypes.CommandInvocation]` public func commandInvocations() async throws -> [SSMClientTypes.CommandInvocation] { return try await self.asyncCompactMap { item in item.commandInvocations } } } - -/// Paginate over `[ListCommandsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCommandsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCommandsOutputResponse` extension SSMClient { + /// Paginate over `[ListCommandsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCommandsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCommandsOutputResponse` public func listCommandsPaginated(input: ListCommandsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCommandsInput.nextToken, outputKey: \ListCommandsOutputResponse.nextToken, paginationFunction: self.listCommands(input:)) } @@ -1221,24 +1183,23 @@ extension ListCommandsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCommandsPaginated` -/// to access the nested member `[SSMClientTypes.Command]` -/// - Returns: `[SSMClientTypes.Command]` extension PaginatorSequence where Input == ListCommandsInput, Output == ListCommandsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCommandsPaginated` + /// to access the nested member `[SSMClientTypes.Command]` + /// - Returns: `[SSMClientTypes.Command]` public func commands() async throws -> [SSMClientTypes.Command] { return try await self.asyncCompactMap { item in item.commands } } } - -/// Paginate over `[ListComplianceItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComplianceItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComplianceItemsOutputResponse` extension SSMClient { + /// Paginate over `[ListComplianceItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComplianceItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComplianceItemsOutputResponse` public func listComplianceItemsPaginated(input: ListComplianceItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComplianceItemsInput.nextToken, outputKey: \ListComplianceItemsOutputResponse.nextToken, paginationFunction: self.listComplianceItems(input:)) } @@ -1255,24 +1216,23 @@ extension ListComplianceItemsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComplianceItemsPaginated` -/// to access the nested member `[SSMClientTypes.ComplianceItem]` -/// - Returns: `[SSMClientTypes.ComplianceItem]` extension PaginatorSequence where Input == ListComplianceItemsInput, Output == ListComplianceItemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComplianceItemsPaginated` + /// to access the nested member `[SSMClientTypes.ComplianceItem]` + /// - Returns: `[SSMClientTypes.ComplianceItem]` public func complianceItems() async throws -> [SSMClientTypes.ComplianceItem] { return try await self.asyncCompactMap { item in item.complianceItems } } } - -/// Paginate over `[ListComplianceSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComplianceSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComplianceSummariesOutputResponse` extension SSMClient { + /// Paginate over `[ListComplianceSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComplianceSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComplianceSummariesOutputResponse` public func listComplianceSummariesPaginated(input: ListComplianceSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComplianceSummariesInput.nextToken, outputKey: \ListComplianceSummariesOutputResponse.nextToken, paginationFunction: self.listComplianceSummaries(input:)) } @@ -1287,24 +1247,23 @@ extension ListComplianceSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComplianceSummariesPaginated` -/// to access the nested member `[SSMClientTypes.ComplianceSummaryItem]` -/// - Returns: `[SSMClientTypes.ComplianceSummaryItem]` extension PaginatorSequence where Input == ListComplianceSummariesInput, Output == ListComplianceSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComplianceSummariesPaginated` + /// to access the nested member `[SSMClientTypes.ComplianceSummaryItem]` + /// - Returns: `[SSMClientTypes.ComplianceSummaryItem]` public func complianceSummaryItems() async throws -> [SSMClientTypes.ComplianceSummaryItem] { return try await self.asyncCompactMap { item in item.complianceSummaryItems } } } - -/// Paginate over `[ListDocumentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDocumentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDocumentsOutputResponse` extension SSMClient { + /// Paginate over `[ListDocumentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDocumentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDocumentsOutputResponse` public func listDocumentsPaginated(input: ListDocumentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDocumentsInput.nextToken, outputKey: \ListDocumentsOutputResponse.nextToken, paginationFunction: self.listDocuments(input:)) } @@ -1320,24 +1279,23 @@ extension ListDocumentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDocumentsPaginated` -/// to access the nested member `[SSMClientTypes.DocumentIdentifier]` -/// - Returns: `[SSMClientTypes.DocumentIdentifier]` extension PaginatorSequence where Input == ListDocumentsInput, Output == ListDocumentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDocumentsPaginated` + /// to access the nested member `[SSMClientTypes.DocumentIdentifier]` + /// - Returns: `[SSMClientTypes.DocumentIdentifier]` public func documentIdentifiers() async throws -> [SSMClientTypes.DocumentIdentifier] { return try await self.asyncCompactMap { item in item.documentIdentifiers } } } - -/// Paginate over `[ListDocumentVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDocumentVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDocumentVersionsOutputResponse` extension SSMClient { + /// Paginate over `[ListDocumentVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDocumentVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDocumentVersionsOutputResponse` public func listDocumentVersionsPaginated(input: ListDocumentVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDocumentVersionsInput.nextToken, outputKey: \ListDocumentVersionsOutputResponse.nextToken, paginationFunction: self.listDocumentVersions(input:)) } @@ -1352,24 +1310,23 @@ extension ListDocumentVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDocumentVersionsPaginated` -/// to access the nested member `[SSMClientTypes.DocumentVersionInfo]` -/// - Returns: `[SSMClientTypes.DocumentVersionInfo]` extension PaginatorSequence where Input == ListDocumentVersionsInput, Output == ListDocumentVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDocumentVersionsPaginated` + /// to access the nested member `[SSMClientTypes.DocumentVersionInfo]` + /// - Returns: `[SSMClientTypes.DocumentVersionInfo]` public func documentVersions() async throws -> [SSMClientTypes.DocumentVersionInfo] { return try await self.asyncCompactMap { item in item.documentVersions } } } - -/// Paginate over `[ListOpsItemEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOpsItemEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOpsItemEventsOutputResponse` extension SSMClient { + /// Paginate over `[ListOpsItemEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOpsItemEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOpsItemEventsOutputResponse` public func listOpsItemEventsPaginated(input: ListOpsItemEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOpsItemEventsInput.nextToken, outputKey: \ListOpsItemEventsOutputResponse.nextToken, paginationFunction: self.listOpsItemEvents(input:)) } @@ -1384,24 +1341,23 @@ extension ListOpsItemEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOpsItemEventsPaginated` -/// to access the nested member `[SSMClientTypes.OpsItemEventSummary]` -/// - Returns: `[SSMClientTypes.OpsItemEventSummary]` extension PaginatorSequence where Input == ListOpsItemEventsInput, Output == ListOpsItemEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOpsItemEventsPaginated` + /// to access the nested member `[SSMClientTypes.OpsItemEventSummary]` + /// - Returns: `[SSMClientTypes.OpsItemEventSummary]` public func summaries() async throws -> [SSMClientTypes.OpsItemEventSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListOpsItemRelatedItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOpsItemRelatedItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOpsItemRelatedItemsOutputResponse` extension SSMClient { + /// Paginate over `[ListOpsItemRelatedItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOpsItemRelatedItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOpsItemRelatedItemsOutputResponse` public func listOpsItemRelatedItemsPaginated(input: ListOpsItemRelatedItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOpsItemRelatedItemsInput.nextToken, outputKey: \ListOpsItemRelatedItemsOutputResponse.nextToken, paginationFunction: self.listOpsItemRelatedItems(input:)) } @@ -1417,24 +1373,23 @@ extension ListOpsItemRelatedItemsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOpsItemRelatedItemsPaginated` -/// to access the nested member `[SSMClientTypes.OpsItemRelatedItemSummary]` -/// - Returns: `[SSMClientTypes.OpsItemRelatedItemSummary]` extension PaginatorSequence where Input == ListOpsItemRelatedItemsInput, Output == ListOpsItemRelatedItemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOpsItemRelatedItemsPaginated` + /// to access the nested member `[SSMClientTypes.OpsItemRelatedItemSummary]` + /// - Returns: `[SSMClientTypes.OpsItemRelatedItemSummary]` public func summaries() async throws -> [SSMClientTypes.OpsItemRelatedItemSummary] { return try await self.asyncCompactMap { item in item.summaries } } } - -/// Paginate over `[ListOpsMetadataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOpsMetadataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOpsMetadataOutputResponse` extension SSMClient { + /// Paginate over `[ListOpsMetadataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOpsMetadataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOpsMetadataOutputResponse` public func listOpsMetadataPaginated(input: ListOpsMetadataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOpsMetadataInput.nextToken, outputKey: \ListOpsMetadataOutputResponse.nextToken, paginationFunction: self.listOpsMetadata(input:)) } @@ -1449,24 +1404,23 @@ extension ListOpsMetadataInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOpsMetadataPaginated` -/// to access the nested member `[SSMClientTypes.OpsMetadata]` -/// - Returns: `[SSMClientTypes.OpsMetadata]` extension PaginatorSequence where Input == ListOpsMetadataInput, Output == ListOpsMetadataOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOpsMetadataPaginated` + /// to access the nested member `[SSMClientTypes.OpsMetadata]` + /// - Returns: `[SSMClientTypes.OpsMetadata]` public func opsMetadataList() async throws -> [SSMClientTypes.OpsMetadata] { return try await self.asyncCompactMap { item in item.opsMetadataList } } } - -/// Paginate over `[ListResourceComplianceSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceComplianceSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceComplianceSummariesOutputResponse` extension SSMClient { + /// Paginate over `[ListResourceComplianceSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceComplianceSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceComplianceSummariesOutputResponse` public func listResourceComplianceSummariesPaginated(input: ListResourceComplianceSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceComplianceSummariesInput.nextToken, outputKey: \ListResourceComplianceSummariesOutputResponse.nextToken, paginationFunction: self.listResourceComplianceSummaries(input:)) } @@ -1481,24 +1435,23 @@ extension ListResourceComplianceSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceComplianceSummariesPaginated` -/// to access the nested member `[SSMClientTypes.ResourceComplianceSummaryItem]` -/// - Returns: `[SSMClientTypes.ResourceComplianceSummaryItem]` extension PaginatorSequence where Input == ListResourceComplianceSummariesInput, Output == ListResourceComplianceSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceComplianceSummariesPaginated` + /// to access the nested member `[SSMClientTypes.ResourceComplianceSummaryItem]` + /// - Returns: `[SSMClientTypes.ResourceComplianceSummaryItem]` public func resourceComplianceSummaryItems() async throws -> [SSMClientTypes.ResourceComplianceSummaryItem] { return try await self.asyncCompactMap { item in item.resourceComplianceSummaryItems } } } - -/// Paginate over `[ListResourceDataSyncOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceDataSyncInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceDataSyncOutputResponse` extension SSMClient { + /// Paginate over `[ListResourceDataSyncOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceDataSyncInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceDataSyncOutputResponse` public func listResourceDataSyncPaginated(input: ListResourceDataSyncInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceDataSyncInput.nextToken, outputKey: \ListResourceDataSyncOutputResponse.nextToken, paginationFunction: self.listResourceDataSync(input:)) } @@ -1513,10 +1466,10 @@ extension ListResourceDataSyncInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourceDataSyncPaginated` -/// to access the nested member `[SSMClientTypes.ResourceDataSyncItem]` -/// - Returns: `[SSMClientTypes.ResourceDataSyncItem]` extension PaginatorSequence where Input == ListResourceDataSyncInput, Output == ListResourceDataSyncOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourceDataSyncPaginated` + /// to access the nested member `[SSMClientTypes.ResourceDataSyncItem]` + /// - Returns: `[SSMClientTypes.ResourceDataSyncItem]` public func resourceDataSyncItems() async throws -> [SSMClientTypes.ResourceDataSyncItem] { return try await self.asyncCompactMap { item in item.resourceDataSyncItems } } diff --git a/Sources/Services/AWSSSM/SSMClient.swift b/Sources/Services/AWSSSM/SSMClient.swift index 917edffcfb5..f0482b72e51 100644 --- a/Sources/Services/AWSSSM/SSMClient.swift +++ b/Sources/Services/AWSSSM/SSMClient.swift @@ -5142,7 +5142,7 @@ extension SSMClient: SSMClientProtocol { return result } - /// Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the [DescribeAssociation] API operation and make a note of all optional parameters required for your UpdateAssociation call. In order to call this API operation, your Identity and Access Management (IAM) user account, group, or role must be configured with permission to call the [DescribeAssociation] API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: isn't authorized to perform: ssm:DescribeAssociation on resource: When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run. + /// Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the [DescribeAssociation] API operation and make a note of all optional parameters required for your UpdateAssociation call. In order to call this API operation, your Identity and Access Management (IAM) user account, group, or role must be configured with permission to call the [DescribeAssociation] API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: isn't authorized to perform: ssm:DescribeAssociation on resource: When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run. public func updateAssociation(input: UpdateAssociationInput) async throws -> UpdateAssociationOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSSSM/SSMClientProtocol.swift b/Sources/Services/AWSSSM/SSMClientProtocol.swift index 769480257bb..e79f1a7427e 100644 --- a/Sources/Services/AWSSSM/SSMClientProtocol.swift +++ b/Sources/Services/AWSSSM/SSMClientProtocol.swift @@ -322,7 +322,7 @@ public protocol SSMClientProtocol { func terminateSession(input: TerminateSessionInput) async throws -> TerminateSessionOutputResponse /// Remove a label or labels from a parameter. func unlabelParameterVersion(input: UnlabelParameterVersionInput) async throws -> UnlabelParameterVersionOutputResponse - /// Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the [DescribeAssociation] API operation and make a note of all optional parameters required for your UpdateAssociation call. In order to call this API operation, your Identity and Access Management (IAM) user account, group, or role must be configured with permission to call the [DescribeAssociation] API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: isn't authorized to perform: ssm:DescribeAssociation on resource: When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run. + /// Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon Simple Storage Service (Amazon S3) output. When you call UpdateAssociation, the system removes all optional parameters from the request and overwrites the association with null values for those parameters. This is by design. You must specify all optional parameters in the call, even if you are not changing the parameters. This includes the Name parameter. Before calling this API action, we recommend that you call the [DescribeAssociation] API operation and make a note of all optional parameters required for your UpdateAssociation call. In order to call this API operation, your Identity and Access Management (IAM) user account, group, or role must be configured with permission to call the [DescribeAssociation] API operation. If you don't have permission to call DescribeAssociation, then you receive the following error: An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: isn't authorized to perform: ssm:DescribeAssociation on resource: When you update an association, the association immediately runs against the specified targets. You can add the ApplyOnlyAtCronInterval parameter to run the association during the next schedule run. func updateAssociation(input: UpdateAssociationInput) async throws -> UpdateAssociationOutputResponse /// Updates the status of the Amazon Web Services Systems Manager document (SSM document) associated with the specified managed node. UpdateAssociationStatus is primarily used by the Amazon Web Services Systems Manager Agent (SSM Agent) to report status updates about your associations and is only used for associations created with the InstanceId legacy parameter. func updateAssociationStatus(input: UpdateAssociationStatusInput) async throws -> UpdateAssociationStatusOutputResponse diff --git a/Sources/Services/AWSSSM/models/Models.swift b/Sources/Services/AWSSSM/models/Models.swift index a9dc1c23320..63c6727335e 100644 --- a/Sources/Services/AWSSSM/models/Models.swift +++ b/Sources/Services/AWSSSM/models/Models.swift @@ -18311,7 +18311,9 @@ extension SSMClientTypes { extension SSMClientTypes.DocumentRequires: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case name = "Name" + case requireType = "RequireType" case version = "Version" + case versionName = "VersionName" } public func encode(to encoder: Swift.Encoder) throws { @@ -18319,9 +18321,15 @@ extension SSMClientTypes.DocumentRequires: Swift.Codable { if let name = self.name { try encodeContainer.encode(name, forKey: .name) } + if let requireType = self.requireType { + try encodeContainer.encode(requireType, forKey: .requireType) + } if let version = self.version { try encodeContainer.encode(version, forKey: .version) } + if let versionName = self.versionName { + try encodeContainer.encode(versionName, forKey: .versionName) + } } public init (from decoder: Swift.Decoder) throws { @@ -18330,6 +18338,10 @@ extension SSMClientTypes.DocumentRequires: Swift.Codable { name = nameDecoded let versionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .version) version = versionDecoded + let requireTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .requireType) + requireType = requireTypeDecoded + let versionNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .versionName) + versionName = versionNameDecoded } } @@ -18339,16 +18351,24 @@ extension SSMClientTypes { /// The name of the required SSM document. The name can be an Amazon Resource Name (ARN). /// This member is required. public var name: Swift.String? + /// The document type of the required SSM document. + public var requireType: Swift.String? /// The document version required by the current document. public var version: Swift.String? + /// An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and can't be changed. + public var versionName: Swift.String? public init ( name: Swift.String? = nil, - version: Swift.String? = nil + requireType: Swift.String? = nil, + version: Swift.String? = nil, + versionName: Swift.String? = nil ) { self.name = name + self.requireType = requireType self.version = version + self.versionName = versionName } } @@ -18668,6 +18688,7 @@ extension SSMClientTypes { case policy case problemanalysis case problemanalysistemplate + case quicksetup case session case sdkUnknown(Swift.String) @@ -18686,6 +18707,7 @@ extension SSMClientTypes { .policy, .problemanalysis, .problemanalysistemplate, + .quicksetup, .session, .sdkUnknown("") ] @@ -18709,6 +18731,7 @@ extension SSMClientTypes { case .policy: return "Policy" case .problemanalysis: return "ProblemAnalysis" case .problemanalysistemplate: return "ProblemAnalysisTemplate" + case .quicksetup: return "QuickSetup" case .session: return "Session" case let .sdkUnknown(s): return s } diff --git a/Sources/Services/AWSSSMContacts/Paginators.swift b/Sources/Services/AWSSSMContacts/Paginators.swift index c3b61f797d2..e06093db5f7 100644 --- a/Sources/Services/AWSSSMContacts/Paginators.swift +++ b/Sources/Services/AWSSSMContacts/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListContactChannelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactChannelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactChannelsOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListContactChannelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactChannelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactChannelsOutputResponse` public func listContactChannelsPaginated(input: ListContactChannelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactChannelsInput.nextToken, outputKey: \ListContactChannelsOutputResponse.nextToken, paginationFunction: self.listContactChannels(input:)) } @@ -26,24 +25,23 @@ extension ListContactChannelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContactChannelsPaginated` -/// to access the nested member `[SSMContactsClientTypes.ContactChannel]` -/// - Returns: `[SSMContactsClientTypes.ContactChannel]` extension PaginatorSequence where Input == ListContactChannelsInput, Output == ListContactChannelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContactChannelsPaginated` + /// to access the nested member `[SSMContactsClientTypes.ContactChannel]` + /// - Returns: `[SSMContactsClientTypes.ContactChannel]` public func contactChannels() async throws -> [SSMContactsClientTypes.ContactChannel] { return try await self.asyncCompactMap { item in item.contactChannels } } } - -/// Paginate over `[ListContactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContactsOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListContactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContactsOutputResponse` public func listContactsPaginated(input: ListContactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContactsInput.nextToken, outputKey: \ListContactsOutputResponse.nextToken, paginationFunction: self.listContacts(input:)) } @@ -59,24 +57,23 @@ extension ListContactsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContactsPaginated` -/// to access the nested member `[SSMContactsClientTypes.Contact]` -/// - Returns: `[SSMContactsClientTypes.Contact]` extension PaginatorSequence where Input == ListContactsInput, Output == ListContactsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContactsPaginated` + /// to access the nested member `[SSMContactsClientTypes.Contact]` + /// - Returns: `[SSMContactsClientTypes.Contact]` public func contacts() async throws -> [SSMContactsClientTypes.Contact] { return try await self.asyncCompactMap { item in item.contacts } } } - -/// Paginate over `[ListEngagementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEngagementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEngagementsOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListEngagementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEngagementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEngagementsOutputResponse` public func listEngagementsPaginated(input: ListEngagementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEngagementsInput.nextToken, outputKey: \ListEngagementsOutputResponse.nextToken, paginationFunction: self.listEngagements(input:)) } @@ -92,24 +89,23 @@ extension ListEngagementsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEngagementsPaginated` -/// to access the nested member `[SSMContactsClientTypes.Engagement]` -/// - Returns: `[SSMContactsClientTypes.Engagement]` extension PaginatorSequence where Input == ListEngagementsInput, Output == ListEngagementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEngagementsPaginated` + /// to access the nested member `[SSMContactsClientTypes.Engagement]` + /// - Returns: `[SSMContactsClientTypes.Engagement]` public func engagements() async throws -> [SSMContactsClientTypes.Engagement] { return try await self.asyncCompactMap { item in item.engagements } } } - -/// Paginate over `[ListPageReceiptsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPageReceiptsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPageReceiptsOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListPageReceiptsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPageReceiptsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPageReceiptsOutputResponse` public func listPageReceiptsPaginated(input: ListPageReceiptsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPageReceiptsInput.nextToken, outputKey: \ListPageReceiptsOutputResponse.nextToken, paginationFunction: self.listPageReceipts(input:)) } @@ -124,24 +120,23 @@ extension ListPageReceiptsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPageReceiptsPaginated` -/// to access the nested member `[SSMContactsClientTypes.Receipt]` -/// - Returns: `[SSMContactsClientTypes.Receipt]` extension PaginatorSequence where Input == ListPageReceiptsInput, Output == ListPageReceiptsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPageReceiptsPaginated` + /// to access the nested member `[SSMContactsClientTypes.Receipt]` + /// - Returns: `[SSMContactsClientTypes.Receipt]` public func receipts() async throws -> [SSMContactsClientTypes.Receipt] { return try await self.asyncCompactMap { item in item.receipts } } } - -/// Paginate over `[ListPagesByContactOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPagesByContactInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPagesByContactOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListPagesByContactOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPagesByContactInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPagesByContactOutputResponse` public func listPagesByContactPaginated(input: ListPagesByContactInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPagesByContactInput.nextToken, outputKey: \ListPagesByContactOutputResponse.nextToken, paginationFunction: self.listPagesByContact(input:)) } @@ -156,24 +151,23 @@ extension ListPagesByContactInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPagesByContactPaginated` -/// to access the nested member `[SSMContactsClientTypes.Page]` -/// - Returns: `[SSMContactsClientTypes.Page]` extension PaginatorSequence where Input == ListPagesByContactInput, Output == ListPagesByContactOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPagesByContactPaginated` + /// to access the nested member `[SSMContactsClientTypes.Page]` + /// - Returns: `[SSMContactsClientTypes.Page]` public func pages() async throws -> [SSMContactsClientTypes.Page] { return try await self.asyncCompactMap { item in item.pages } } } - -/// Paginate over `[ListPagesByEngagementOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPagesByEngagementInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPagesByEngagementOutputResponse` extension SSMContactsClient { + /// Paginate over `[ListPagesByEngagementOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPagesByEngagementInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPagesByEngagementOutputResponse` public func listPagesByEngagementPaginated(input: ListPagesByEngagementInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPagesByEngagementInput.nextToken, outputKey: \ListPagesByEngagementOutputResponse.nextToken, paginationFunction: self.listPagesByEngagement(input:)) } @@ -188,10 +182,10 @@ extension ListPagesByEngagementInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPagesByEngagementPaginated` -/// to access the nested member `[SSMContactsClientTypes.Page]` -/// - Returns: `[SSMContactsClientTypes.Page]` extension PaginatorSequence where Input == ListPagesByEngagementInput, Output == ListPagesByEngagementOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPagesByEngagementPaginated` + /// to access the nested member `[SSMContactsClientTypes.Page]` + /// - Returns: `[SSMContactsClientTypes.Page]` public func pages() async throws -> [SSMContactsClientTypes.Page] { return try await self.asyncCompactMap { item in item.pages } } diff --git a/Sources/Services/AWSSSMIncidents/Paginators.swift b/Sources/Services/AWSSSMIncidents/Paginators.swift index 5f4cae4661e..70f1c7d8c40 100644 --- a/Sources/Services/AWSSSMIncidents/Paginators.swift +++ b/Sources/Services/AWSSSMIncidents/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetResourcePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetResourcePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[GetResourcePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetResourcePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetResourcePoliciesOutputResponse` public func getResourcePoliciesPaginated(input: GetResourcePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetResourcePoliciesInput.nextToken, outputKey: \GetResourcePoliciesOutputResponse.nextToken, paginationFunction: self.getResourcePolicies(input:)) } @@ -26,24 +25,23 @@ extension GetResourcePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` -/// to access the nested member `[SSMIncidentsClientTypes.ResourcePolicy]` -/// - Returns: `[SSMIncidentsClientTypes.ResourcePolicy]` extension PaginatorSequence where Input == GetResourcePoliciesInput, Output == GetResourcePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getResourcePoliciesPaginated` + /// to access the nested member `[SSMIncidentsClientTypes.ResourcePolicy]` + /// - Returns: `[SSMIncidentsClientTypes.ResourcePolicy]` public func resourcePolicies() async throws -> [SSMIncidentsClientTypes.ResourcePolicy] { return try await self.asyncCompactMap { item in item.resourcePolicies } } } - -/// Paginate over `[ListIncidentRecordsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIncidentRecordsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIncidentRecordsOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[ListIncidentRecordsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIncidentRecordsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIncidentRecordsOutputResponse` public func listIncidentRecordsPaginated(input: ListIncidentRecordsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIncidentRecordsInput.nextToken, outputKey: \ListIncidentRecordsOutputResponse.nextToken, paginationFunction: self.listIncidentRecords(input:)) } @@ -58,24 +56,23 @@ extension ListIncidentRecordsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listIncidentRecordsPaginated` -/// to access the nested member `[SSMIncidentsClientTypes.IncidentRecordSummary]` -/// - Returns: `[SSMIncidentsClientTypes.IncidentRecordSummary]` extension PaginatorSequence where Input == ListIncidentRecordsInput, Output == ListIncidentRecordsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listIncidentRecordsPaginated` + /// to access the nested member `[SSMIncidentsClientTypes.IncidentRecordSummary]` + /// - Returns: `[SSMIncidentsClientTypes.IncidentRecordSummary]` public func incidentRecordSummaries() async throws -> [SSMIncidentsClientTypes.IncidentRecordSummary] { return try await self.asyncCompactMap { item in item.incidentRecordSummaries } } } - -/// Paginate over `[ListRelatedItemsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRelatedItemsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRelatedItemsOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[ListRelatedItemsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRelatedItemsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRelatedItemsOutputResponse` public func listRelatedItemsPaginated(input: ListRelatedItemsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRelatedItemsInput.nextToken, outputKey: \ListRelatedItemsOutputResponse.nextToken, paginationFunction: self.listRelatedItems(input:)) } @@ -90,24 +87,23 @@ extension ListRelatedItemsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRelatedItemsPaginated` -/// to access the nested member `[SSMIncidentsClientTypes.RelatedItem]` -/// - Returns: `[SSMIncidentsClientTypes.RelatedItem]` extension PaginatorSequence where Input == ListRelatedItemsInput, Output == ListRelatedItemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRelatedItemsPaginated` + /// to access the nested member `[SSMIncidentsClientTypes.RelatedItem]` + /// - Returns: `[SSMIncidentsClientTypes.RelatedItem]` public func relatedItems() async throws -> [SSMIncidentsClientTypes.RelatedItem] { return try await self.asyncCompactMap { item in item.relatedItems } } } - -/// Paginate over `[ListReplicationSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListReplicationSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListReplicationSetsOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[ListReplicationSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListReplicationSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListReplicationSetsOutputResponse` public func listReplicationSetsPaginated(input: ListReplicationSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListReplicationSetsInput.nextToken, outputKey: \ListReplicationSetsOutputResponse.nextToken, paginationFunction: self.listReplicationSets(input:)) } @@ -121,24 +117,23 @@ extension ListReplicationSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listReplicationSetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListReplicationSetsInput, Output == ListReplicationSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listReplicationSetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func replicationSetArns() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.replicationSetArns } } } - -/// Paginate over `[ListResponsePlansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResponsePlansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResponsePlansOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[ListResponsePlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResponsePlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResponsePlansOutputResponse` public func listResponsePlansPaginated(input: ListResponsePlansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResponsePlansInput.nextToken, outputKey: \ListResponsePlansOutputResponse.nextToken, paginationFunction: self.listResponsePlans(input:)) } @@ -152,24 +147,23 @@ extension ListResponsePlansInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResponsePlansPaginated` -/// to access the nested member `[SSMIncidentsClientTypes.ResponsePlanSummary]` -/// - Returns: `[SSMIncidentsClientTypes.ResponsePlanSummary]` extension PaginatorSequence where Input == ListResponsePlansInput, Output == ListResponsePlansOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResponsePlansPaginated` + /// to access the nested member `[SSMIncidentsClientTypes.ResponsePlanSummary]` + /// - Returns: `[SSMIncidentsClientTypes.ResponsePlanSummary]` public func responsePlanSummaries() async throws -> [SSMIncidentsClientTypes.ResponsePlanSummary] { return try await self.asyncCompactMap { item in item.responsePlanSummaries } } } - -/// Paginate over `[ListTimelineEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTimelineEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTimelineEventsOutputResponse` extension SSMIncidentsClient { + /// Paginate over `[ListTimelineEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTimelineEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTimelineEventsOutputResponse` public func listTimelineEventsPaginated(input: ListTimelineEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTimelineEventsInput.nextToken, outputKey: \ListTimelineEventsOutputResponse.nextToken, paginationFunction: self.listTimelineEvents(input:)) } @@ -187,10 +181,10 @@ extension ListTimelineEventsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTimelineEventsPaginated` -/// to access the nested member `[SSMIncidentsClientTypes.EventSummary]` -/// - Returns: `[SSMIncidentsClientTypes.EventSummary]` extension PaginatorSequence where Input == ListTimelineEventsInput, Output == ListTimelineEventsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTimelineEventsPaginated` + /// to access the nested member `[SSMIncidentsClientTypes.EventSummary]` + /// - Returns: `[SSMIncidentsClientTypes.EventSummary]` public func eventSummaries() async throws -> [SSMIncidentsClientTypes.EventSummary] { return try await self.asyncCompactMap { item in item.eventSummaries } } diff --git a/Sources/Services/AWSSSO/Paginators.swift b/Sources/Services/AWSSSO/Paginators.swift index b976e5a7caa..5cfa11f62c7 100644 --- a/Sources/Services/AWSSSO/Paginators.swift +++ b/Sources/Services/AWSSSO/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountRolesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountRolesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountRolesOutputResponse` extension SSOClient { + /// Paginate over `[ListAccountRolesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountRolesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountRolesOutputResponse` public func listAccountRolesPaginated(input: ListAccountRolesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountRolesInput.nextToken, outputKey: \ListAccountRolesOutputResponse.nextToken, paginationFunction: self.listAccountRoles(input:)) } @@ -27,24 +26,23 @@ extension ListAccountRolesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountRolesPaginated` -/// to access the nested member `[SSOClientTypes.RoleInfo]` -/// - Returns: `[SSOClientTypes.RoleInfo]` extension PaginatorSequence where Input == ListAccountRolesInput, Output == ListAccountRolesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountRolesPaginated` + /// to access the nested member `[SSOClientTypes.RoleInfo]` + /// - Returns: `[SSOClientTypes.RoleInfo]` public func roleList() async throws -> [SSOClientTypes.RoleInfo] { return try await self.asyncCompactMap { item in item.roleList } } } - -/// Paginate over `[ListAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` extension SSOClient { + /// Paginate over `[ListAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountsOutputResponse` public func listAccountsPaginated(input: ListAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountsInput.nextToken, outputKey: \ListAccountsOutputResponse.nextToken, paginationFunction: self.listAccounts(input:)) } @@ -59,10 +57,10 @@ extension ListAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountsPaginated` -/// to access the nested member `[SSOClientTypes.AccountInfo]` -/// - Returns: `[SSOClientTypes.AccountInfo]` extension PaginatorSequence where Input == ListAccountsInput, Output == ListAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountsPaginated` + /// to access the nested member `[SSOClientTypes.AccountInfo]` + /// - Returns: `[SSOClientTypes.AccountInfo]` public func accountList() async throws -> [SSOClientTypes.AccountInfo] { return try await self.asyncCompactMap { item in item.accountList } } diff --git a/Sources/Services/AWSSSOAdmin/Paginators.swift b/Sources/Services/AWSSSOAdmin/Paginators.swift index 77c81b0fbc7..4abc6f911b3 100644 --- a/Sources/Services/AWSSSOAdmin/Paginators.swift +++ b/Sources/Services/AWSSSOAdmin/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccountAssignmentCreationStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountAssignmentCreationStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentCreationStatusOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListAccountAssignmentCreationStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountAssignmentCreationStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentCreationStatusOutputResponse` public func listAccountAssignmentCreationStatusPaginated(input: ListAccountAssignmentCreationStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountAssignmentCreationStatusInput.nextToken, outputKey: \ListAccountAssignmentCreationStatusOutputResponse.nextToken, paginationFunction: self.listAccountAssignmentCreationStatus(input:)) } @@ -27,24 +26,23 @@ extension ListAccountAssignmentCreationStatusInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentCreationStatusPaginated` -/// to access the nested member `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` -/// - Returns: `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` extension PaginatorSequence where Input == ListAccountAssignmentCreationStatusInput, Output == ListAccountAssignmentCreationStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentCreationStatusPaginated` + /// to access the nested member `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` + /// - Returns: `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` public func accountAssignmentsCreationStatus() async throws -> [SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata] { return try await self.asyncCompactMap { item in item.accountAssignmentsCreationStatus } } } - -/// Paginate over `[ListAccountAssignmentDeletionStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountAssignmentDeletionStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentDeletionStatusOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListAccountAssignmentDeletionStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountAssignmentDeletionStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentDeletionStatusOutputResponse` public func listAccountAssignmentDeletionStatusPaginated(input: ListAccountAssignmentDeletionStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountAssignmentDeletionStatusInput.nextToken, outputKey: \ListAccountAssignmentDeletionStatusOutputResponse.nextToken, paginationFunction: self.listAccountAssignmentDeletionStatus(input:)) } @@ -60,24 +58,23 @@ extension ListAccountAssignmentDeletionStatusInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentDeletionStatusPaginated` -/// to access the nested member `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` -/// - Returns: `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` extension PaginatorSequence where Input == ListAccountAssignmentDeletionStatusInput, Output == ListAccountAssignmentDeletionStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentDeletionStatusPaginated` + /// to access the nested member `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` + /// - Returns: `[SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata]` public func accountAssignmentsDeletionStatus() async throws -> [SSOAdminClientTypes.AccountAssignmentOperationStatusMetadata] { return try await self.asyncCompactMap { item in item.accountAssignmentsDeletionStatus } } } - -/// Paginate over `[ListAccountAssignmentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountAssignmentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentsOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListAccountAssignmentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountAssignmentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountAssignmentsOutputResponse` public func listAccountAssignmentsPaginated(input: ListAccountAssignmentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountAssignmentsInput.nextToken, outputKey: \ListAccountAssignmentsOutputResponse.nextToken, paginationFunction: self.listAccountAssignments(input:)) } @@ -94,24 +91,23 @@ extension ListAccountAssignmentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentsPaginated` -/// to access the nested member `[SSOAdminClientTypes.AccountAssignment]` -/// - Returns: `[SSOAdminClientTypes.AccountAssignment]` extension PaginatorSequence where Input == ListAccountAssignmentsInput, Output == ListAccountAssignmentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountAssignmentsPaginated` + /// to access the nested member `[SSOAdminClientTypes.AccountAssignment]` + /// - Returns: `[SSOAdminClientTypes.AccountAssignment]` public func accountAssignments() async throws -> [SSOAdminClientTypes.AccountAssignment] { return try await self.asyncCompactMap { item in item.accountAssignments } } } - -/// Paginate over `[ListAccountsForProvisionedPermissionSetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccountsForProvisionedPermissionSetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccountsForProvisionedPermissionSetOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListAccountsForProvisionedPermissionSetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccountsForProvisionedPermissionSetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccountsForProvisionedPermissionSetOutputResponse` public func listAccountsForProvisionedPermissionSetPaginated(input: ListAccountsForProvisionedPermissionSetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccountsForProvisionedPermissionSetInput.nextToken, outputKey: \ListAccountsForProvisionedPermissionSetOutputResponse.nextToken, paginationFunction: self.listAccountsForProvisionedPermissionSet(input:)) } @@ -128,24 +124,23 @@ extension ListAccountsForProvisionedPermissionSetInput: ClientRuntime.PaginateTo )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccountsForProvisionedPermissionSetPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAccountsForProvisionedPermissionSetInput, Output == ListAccountsForProvisionedPermissionSetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccountsForProvisionedPermissionSetPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func accountIds() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.accountIds } } } - -/// Paginate over `[ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCustomerManagedPolicyReferencesInPermissionSetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCustomerManagedPolicyReferencesInPermissionSetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse` public func listCustomerManagedPolicyReferencesInPermissionSetPaginated(input: ListCustomerManagedPolicyReferencesInPermissionSetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCustomerManagedPolicyReferencesInPermissionSetInput.nextToken, outputKey: \ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse.nextToken, paginationFunction: self.listCustomerManagedPolicyReferencesInPermissionSet(input:)) } @@ -161,24 +156,23 @@ extension ListCustomerManagedPolicyReferencesInPermissionSetInput: ClientRuntime )} } -/// This paginator transforms the `AsyncSequence` returned by `listCustomerManagedPolicyReferencesInPermissionSetPaginated` -/// to access the nested member `[SSOAdminClientTypes.CustomerManagedPolicyReference]` -/// - Returns: `[SSOAdminClientTypes.CustomerManagedPolicyReference]` extension PaginatorSequence where Input == ListCustomerManagedPolicyReferencesInPermissionSetInput, Output == ListCustomerManagedPolicyReferencesInPermissionSetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCustomerManagedPolicyReferencesInPermissionSetPaginated` + /// to access the nested member `[SSOAdminClientTypes.CustomerManagedPolicyReference]` + /// - Returns: `[SSOAdminClientTypes.CustomerManagedPolicyReference]` public func customerManagedPolicyReferences() async throws -> [SSOAdminClientTypes.CustomerManagedPolicyReference] { return try await self.asyncCompactMap { item in item.customerManagedPolicyReferences } } } - -/// Paginate over `[ListInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` public func listInstancesPaginated(input: ListInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstancesInput.nextToken, outputKey: \ListInstancesOutputResponse.nextToken, paginationFunction: self.listInstances(input:)) } @@ -192,24 +186,23 @@ extension ListInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` -/// to access the nested member `[SSOAdminClientTypes.InstanceMetadata]` -/// - Returns: `[SSOAdminClientTypes.InstanceMetadata]` extension PaginatorSequence where Input == ListInstancesInput, Output == ListInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInstancesPaginated` + /// to access the nested member `[SSOAdminClientTypes.InstanceMetadata]` + /// - Returns: `[SSOAdminClientTypes.InstanceMetadata]` public func instances() async throws -> [SSOAdminClientTypes.InstanceMetadata] { return try await self.asyncCompactMap { item in item.instances } } } - -/// Paginate over `[ListManagedPoliciesInPermissionSetOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListManagedPoliciesInPermissionSetInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListManagedPoliciesInPermissionSetOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListManagedPoliciesInPermissionSetOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedPoliciesInPermissionSetInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedPoliciesInPermissionSetOutputResponse` public func listManagedPoliciesInPermissionSetPaginated(input: ListManagedPoliciesInPermissionSetInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedPoliciesInPermissionSetInput.nextToken, outputKey: \ListManagedPoliciesInPermissionSetOutputResponse.nextToken, paginationFunction: self.listManagedPoliciesInPermissionSet(input:)) } @@ -225,24 +218,23 @@ extension ListManagedPoliciesInPermissionSetInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listManagedPoliciesInPermissionSetPaginated` -/// to access the nested member `[SSOAdminClientTypes.AttachedManagedPolicy]` -/// - Returns: `[SSOAdminClientTypes.AttachedManagedPolicy]` extension PaginatorSequence where Input == ListManagedPoliciesInPermissionSetInput, Output == ListManagedPoliciesInPermissionSetOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listManagedPoliciesInPermissionSetPaginated` + /// to access the nested member `[SSOAdminClientTypes.AttachedManagedPolicy]` + /// - Returns: `[SSOAdminClientTypes.AttachedManagedPolicy]` public func attachedManagedPolicies() async throws -> [SSOAdminClientTypes.AttachedManagedPolicy] { return try await self.asyncCompactMap { item in item.attachedManagedPolicies } } } - -/// Paginate over `[ListPermissionSetProvisioningStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionSetProvisioningStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetProvisioningStatusOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListPermissionSetProvisioningStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionSetProvisioningStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetProvisioningStatusOutputResponse` public func listPermissionSetProvisioningStatusPaginated(input: ListPermissionSetProvisioningStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionSetProvisioningStatusInput.nextToken, outputKey: \ListPermissionSetProvisioningStatusOutputResponse.nextToken, paginationFunction: self.listPermissionSetProvisioningStatus(input:)) } @@ -258,24 +250,23 @@ extension ListPermissionSetProvisioningStatusInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listPermissionSetProvisioningStatusPaginated` -/// to access the nested member `[SSOAdminClientTypes.PermissionSetProvisioningStatusMetadata]` -/// - Returns: `[SSOAdminClientTypes.PermissionSetProvisioningStatusMetadata]` extension PaginatorSequence where Input == ListPermissionSetProvisioningStatusInput, Output == ListPermissionSetProvisioningStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPermissionSetProvisioningStatusPaginated` + /// to access the nested member `[SSOAdminClientTypes.PermissionSetProvisioningStatusMetadata]` + /// - Returns: `[SSOAdminClientTypes.PermissionSetProvisioningStatusMetadata]` public func permissionSetsProvisioningStatus() async throws -> [SSOAdminClientTypes.PermissionSetProvisioningStatusMetadata] { return try await self.asyncCompactMap { item in item.permissionSetsProvisioningStatus } } } - -/// Paginate over `[ListPermissionSetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionSetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetsOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListPermissionSetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionSetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetsOutputResponse` public func listPermissionSetsPaginated(input: ListPermissionSetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionSetsInput.nextToken, outputKey: \ListPermissionSetsOutputResponse.nextToken, paginationFunction: self.listPermissionSets(input:)) } @@ -290,24 +281,23 @@ extension ListPermissionSetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPermissionSetsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListPermissionSetsInput, Output == ListPermissionSetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPermissionSetsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func permissionSets() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.permissionSets } } } - -/// Paginate over `[ListPermissionSetsProvisionedToAccountOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPermissionSetsProvisionedToAccountInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetsProvisionedToAccountOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListPermissionSetsProvisionedToAccountOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPermissionSetsProvisionedToAccountInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPermissionSetsProvisionedToAccountOutputResponse` public func listPermissionSetsProvisionedToAccountPaginated(input: ListPermissionSetsProvisionedToAccountInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPermissionSetsProvisionedToAccountInput.nextToken, outputKey: \ListPermissionSetsProvisionedToAccountOutputResponse.nextToken, paginationFunction: self.listPermissionSetsProvisionedToAccount(input:)) } @@ -324,24 +314,23 @@ extension ListPermissionSetsProvisionedToAccountInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `listPermissionSetsProvisionedToAccountPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListPermissionSetsProvisionedToAccountInput, Output == ListPermissionSetsProvisionedToAccountOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPermissionSetsProvisionedToAccountPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func permissionSets() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.permissionSets } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension SSOAdminClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -356,10 +345,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[SSOAdminClientTypes.Tag]` -/// - Returns: `[SSOAdminClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[SSOAdminClientTypes.Tag]` + /// - Returns: `[SSOAdminClientTypes.Tag]` public func tags() async throws -> [SSOAdminClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Sources/Services/AWSSTS/EndpointResolver.swift b/Sources/Services/AWSSTS/EndpointResolver.swift index edd025a81a7..32b717976b0 100644 --- a/Sources/Services/AWSSTS/EndpointResolver.swift +++ b/Sources/Services/AWSSTS/EndpointResolver.swift @@ -39,7 +39,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"UseGlobalEndpoint\":{\"builtIn\":\"AWS::STS::UseGlobalEndpoint\",\"required\":true,\"default\":false,\"documentation\":\"Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-northeast-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-south-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-southeast-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-southeast-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ca-central-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-central-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-north-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-3\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"sa-east-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-west-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-west-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"{Region}\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"sts\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"UseGlobalEndpoint\":{\"builtIn\":\"AWS::STS::UseGlobalEndpoint\",\"required\":true,\"default\":false,\"documentation\":\"Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.\",\"type\":\"Boolean\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseGlobalEndpoint\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]},{\"fn\":\"not\",\"argv\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-northeast-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-south-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-southeast-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ap-southeast-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"ca-central-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-central-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-north-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"eu-west-3\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"sa-east-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-east-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-west-1\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-west-2\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"{Region}\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[\"aws-us-gov\",{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]}]}],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://sts.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"sts\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://sts.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSSWF/Paginators.swift b/Sources/Services/AWSSWF/Paginators.swift index c568e8aba56..6d15fcff49f 100644 --- a/Sources/Services/AWSSWF/Paginators.swift +++ b/Sources/Services/AWSSWF/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetWorkflowExecutionHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetWorkflowExecutionHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetWorkflowExecutionHistoryOutputResponse` extension SWFClient { + /// Paginate over `[GetWorkflowExecutionHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetWorkflowExecutionHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetWorkflowExecutionHistoryOutputResponse` public func getWorkflowExecutionHistoryPaginated(input: GetWorkflowExecutionHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetWorkflowExecutionHistoryInput.nextPageToken, outputKey: \GetWorkflowExecutionHistoryOutputResponse.nextPageToken, paginationFunction: self.getWorkflowExecutionHistory(input:)) } @@ -28,24 +27,23 @@ extension GetWorkflowExecutionHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getWorkflowExecutionHistoryPaginated` -/// to access the nested member `[SWFClientTypes.HistoryEvent]` -/// - Returns: `[SWFClientTypes.HistoryEvent]` extension PaginatorSequence where Input == GetWorkflowExecutionHistoryInput, Output == GetWorkflowExecutionHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getWorkflowExecutionHistoryPaginated` + /// to access the nested member `[SWFClientTypes.HistoryEvent]` + /// - Returns: `[SWFClientTypes.HistoryEvent]` public func events() async throws -> [SWFClientTypes.HistoryEvent] { return try await self.asyncCompactMap { item in item.events } } } - -/// Paginate over `[ListActivityTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActivityTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActivityTypesOutputResponse` extension SWFClient { + /// Paginate over `[ListActivityTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActivityTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActivityTypesOutputResponse` public func listActivityTypesPaginated(input: ListActivityTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActivityTypesInput.nextPageToken, outputKey: \ListActivityTypesOutputResponse.nextPageToken, paginationFunction: self.listActivityTypes(input:)) } @@ -63,24 +61,23 @@ extension ListActivityTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listActivityTypesPaginated` -/// to access the nested member `[SWFClientTypes.ActivityTypeInfo]` -/// - Returns: `[SWFClientTypes.ActivityTypeInfo]` extension PaginatorSequence where Input == ListActivityTypesInput, Output == ListActivityTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listActivityTypesPaginated` + /// to access the nested member `[SWFClientTypes.ActivityTypeInfo]` + /// - Returns: `[SWFClientTypes.ActivityTypeInfo]` public func typeInfos() async throws -> [SWFClientTypes.ActivityTypeInfo] { return try await self.asyncCompactMap { item in item.typeInfos } } } - -/// Paginate over `[ListClosedWorkflowExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClosedWorkflowExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClosedWorkflowExecutionsOutputResponse` extension SWFClient { + /// Paginate over `[ListClosedWorkflowExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClosedWorkflowExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClosedWorkflowExecutionsOutputResponse` public func listClosedWorkflowExecutionsPaginated(input: ListClosedWorkflowExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClosedWorkflowExecutionsInput.nextPageToken, outputKey: \ListClosedWorkflowExecutionsOutputResponse.nextPageToken, paginationFunction: self.listClosedWorkflowExecutions(input:)) } @@ -102,24 +99,23 @@ extension ListClosedWorkflowExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClosedWorkflowExecutionsPaginated` -/// to access the nested member `[SWFClientTypes.WorkflowExecutionInfo]` -/// - Returns: `[SWFClientTypes.WorkflowExecutionInfo]` extension PaginatorSequence where Input == ListClosedWorkflowExecutionsInput, Output == ListClosedWorkflowExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClosedWorkflowExecutionsPaginated` + /// to access the nested member `[SWFClientTypes.WorkflowExecutionInfo]` + /// - Returns: `[SWFClientTypes.WorkflowExecutionInfo]` public func executionInfos() async throws -> [SWFClientTypes.WorkflowExecutionInfo] { return try await self.asyncCompactMap { item in item.executionInfos } } } - -/// Paginate over `[ListDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` extension SWFClient { + /// Paginate over `[ListDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` public func listDomainsPaginated(input: ListDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsInput.nextPageToken, outputKey: \ListDomainsOutputResponse.nextPageToken, paginationFunction: self.listDomains(input:)) } @@ -135,24 +131,23 @@ extension ListDomainsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` -/// to access the nested member `[SWFClientTypes.DomainInfo]` -/// - Returns: `[SWFClientTypes.DomainInfo]` extension PaginatorSequence where Input == ListDomainsInput, Output == ListDomainsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` + /// to access the nested member `[SWFClientTypes.DomainInfo]` + /// - Returns: `[SWFClientTypes.DomainInfo]` public func domainInfos() async throws -> [SWFClientTypes.DomainInfo] { return try await self.asyncCompactMap { item in item.domainInfos } } } - -/// Paginate over `[ListOpenWorkflowExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOpenWorkflowExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOpenWorkflowExecutionsOutputResponse` extension SWFClient { + /// Paginate over `[ListOpenWorkflowExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOpenWorkflowExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOpenWorkflowExecutionsOutputResponse` public func listOpenWorkflowExecutionsPaginated(input: ListOpenWorkflowExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOpenWorkflowExecutionsInput.nextPageToken, outputKey: \ListOpenWorkflowExecutionsOutputResponse.nextPageToken, paginationFunction: self.listOpenWorkflowExecutions(input:)) } @@ -172,24 +167,23 @@ extension ListOpenWorkflowExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOpenWorkflowExecutionsPaginated` -/// to access the nested member `[SWFClientTypes.WorkflowExecutionInfo]` -/// - Returns: `[SWFClientTypes.WorkflowExecutionInfo]` extension PaginatorSequence where Input == ListOpenWorkflowExecutionsInput, Output == ListOpenWorkflowExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOpenWorkflowExecutionsPaginated` + /// to access the nested member `[SWFClientTypes.WorkflowExecutionInfo]` + /// - Returns: `[SWFClientTypes.WorkflowExecutionInfo]` public func executionInfos() async throws -> [SWFClientTypes.WorkflowExecutionInfo] { return try await self.asyncCompactMap { item in item.executionInfos } } } - -/// Paginate over `[ListWorkflowTypesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkflowTypesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowTypesOutputResponse` extension SWFClient { + /// Paginate over `[ListWorkflowTypesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkflowTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowTypesOutputResponse` public func listWorkflowTypesPaginated(input: ListWorkflowTypesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkflowTypesInput.nextPageToken, outputKey: \ListWorkflowTypesOutputResponse.nextPageToken, paginationFunction: self.listWorkflowTypes(input:)) } @@ -207,24 +201,23 @@ extension ListWorkflowTypesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkflowTypesPaginated` -/// to access the nested member `[SWFClientTypes.WorkflowTypeInfo]` -/// - Returns: `[SWFClientTypes.WorkflowTypeInfo]` extension PaginatorSequence where Input == ListWorkflowTypesInput, Output == ListWorkflowTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkflowTypesPaginated` + /// to access the nested member `[SWFClientTypes.WorkflowTypeInfo]` + /// - Returns: `[SWFClientTypes.WorkflowTypeInfo]` public func typeInfos() async throws -> [SWFClientTypes.WorkflowTypeInfo] { return try await self.asyncCompactMap { item in item.typeInfos } } } - -/// Paginate over `[PollForDecisionTaskOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[PollForDecisionTaskInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `PollForDecisionTaskOutputResponse` extension SWFClient { + /// Paginate over `[PollForDecisionTaskOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[PollForDecisionTaskInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `PollForDecisionTaskOutputResponse` public func pollForDecisionTaskPaginated(input: PollForDecisionTaskInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \PollForDecisionTaskInput.nextPageToken, outputKey: \PollForDecisionTaskOutputResponse.nextPageToken, paginationFunction: self.pollForDecisionTask(input:)) } @@ -242,10 +235,10 @@ extension PollForDecisionTaskInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `pollForDecisionTaskPaginated` -/// to access the nested member `[SWFClientTypes.HistoryEvent]` -/// - Returns: `[SWFClientTypes.HistoryEvent]` extension PaginatorSequence where Input == PollForDecisionTaskInput, Output == PollForDecisionTaskOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `pollForDecisionTaskPaginated` + /// to access the nested member `[SWFClientTypes.HistoryEvent]` + /// - Returns: `[SWFClientTypes.HistoryEvent]` public func events() async throws -> [SWFClientTypes.HistoryEvent] { return try await self.asyncCompactMap { item in item.events } } diff --git a/Sources/Services/AWSSageMaker/Paginators.swift b/Sources/Services/AWSSageMaker/Paginators.swift index 2b0ec89010a..1b550e1b539 100644 --- a/Sources/Services/AWSSageMaker/Paginators.swift +++ b/Sources/Services/AWSSageMaker/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListActionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListActionsOutputResponse` public func listActionsPaginated(input: ListActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListActionsInput.nextToken, outputKey: \ListActionsOutputResponse.nextToken, paginationFunction: self.listActions(input:)) } @@ -31,24 +30,23 @@ extension ListActionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listActionsPaginated` -/// to access the nested member `[SageMakerClientTypes.ActionSummary]` -/// - Returns: `[SageMakerClientTypes.ActionSummary]` extension PaginatorSequence where Input == ListActionsInput, Output == ListActionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listActionsPaginated` + /// to access the nested member `[SageMakerClientTypes.ActionSummary]` + /// - Returns: `[SageMakerClientTypes.ActionSummary]` public func actionSummaries() async throws -> [SageMakerClientTypes.ActionSummary] { return try await self.asyncCompactMap { item in item.actionSummaries } } } - -/// Paginate over `[ListAlgorithmsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAlgorithmsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAlgorithmsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAlgorithmsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAlgorithmsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAlgorithmsOutputResponse` public func listAlgorithmsPaginated(input: ListAlgorithmsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAlgorithmsInput.nextToken, outputKey: \ListAlgorithmsOutputResponse.nextToken, paginationFunction: self.listAlgorithms(input:)) } @@ -67,24 +65,23 @@ extension ListAlgorithmsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAlgorithmsPaginated` -/// to access the nested member `[SageMakerClientTypes.AlgorithmSummary]` -/// - Returns: `[SageMakerClientTypes.AlgorithmSummary]` extension PaginatorSequence where Input == ListAlgorithmsInput, Output == ListAlgorithmsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAlgorithmsPaginated` + /// to access the nested member `[SageMakerClientTypes.AlgorithmSummary]` + /// - Returns: `[SageMakerClientTypes.AlgorithmSummary]` public func algorithmSummaryList() async throws -> [SageMakerClientTypes.AlgorithmSummary] { return try await self.asyncCompactMap { item in item.algorithmSummaryList } } } - -/// Paginate over `[ListAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` public func listAliasesPaginated(input: ListAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAliasesInput.nextToken, outputKey: \ListAliasesOutputResponse.nextToken, paginationFunction: self.listAliases(input:)) } @@ -101,24 +98,23 @@ extension ListAliasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAliasesInput, Output == ListAliasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAliasesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func sageMakerImageVersionAliases() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.sageMakerImageVersionAliases } } } - -/// Paginate over `[ListAppImageConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppImageConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppImageConfigsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAppImageConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppImageConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppImageConfigsOutputResponse` public func listAppImageConfigsPaginated(input: ListAppImageConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppImageConfigsInput.nextToken, outputKey: \ListAppImageConfigsOutputResponse.nextToken, paginationFunction: self.listAppImageConfigs(input:)) } @@ -139,24 +135,23 @@ extension ListAppImageConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAppImageConfigsPaginated` -/// to access the nested member `[SageMakerClientTypes.AppImageConfigDetails]` -/// - Returns: `[SageMakerClientTypes.AppImageConfigDetails]` extension PaginatorSequence where Input == ListAppImageConfigsInput, Output == ListAppImageConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAppImageConfigsPaginated` + /// to access the nested member `[SageMakerClientTypes.AppImageConfigDetails]` + /// - Returns: `[SageMakerClientTypes.AppImageConfigDetails]` public func appImageConfigs() async throws -> [SageMakerClientTypes.AppImageConfigDetails] { return try await self.asyncCompactMap { item in item.appImageConfigs } } } - -/// Paginate over `[ListAppsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAppsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAppsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAppsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAppsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAppsOutputResponse` public func listAppsPaginated(input: ListAppsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAppsInput.nextToken, outputKey: \ListAppsOutputResponse.nextToken, paginationFunction: self.listApps(input:)) } @@ -175,24 +170,23 @@ extension ListAppsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAppsPaginated` -/// to access the nested member `[SageMakerClientTypes.AppDetails]` -/// - Returns: `[SageMakerClientTypes.AppDetails]` extension PaginatorSequence where Input == ListAppsInput, Output == ListAppsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAppsPaginated` + /// to access the nested member `[SageMakerClientTypes.AppDetails]` + /// - Returns: `[SageMakerClientTypes.AppDetails]` public func apps() async throws -> [SageMakerClientTypes.AppDetails] { return try await self.asyncCompactMap { item in item.apps } } } - -/// Paginate over `[ListArtifactsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListArtifactsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListArtifactsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListArtifactsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListArtifactsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListArtifactsOutputResponse` public func listArtifactsPaginated(input: ListArtifactsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListArtifactsInput.nextToken, outputKey: \ListArtifactsOutputResponse.nextToken, paginationFunction: self.listArtifacts(input:)) } @@ -212,24 +206,23 @@ extension ListArtifactsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listArtifactsPaginated` -/// to access the nested member `[SageMakerClientTypes.ArtifactSummary]` -/// - Returns: `[SageMakerClientTypes.ArtifactSummary]` extension PaginatorSequence where Input == ListArtifactsInput, Output == ListArtifactsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listArtifactsPaginated` + /// to access the nested member `[SageMakerClientTypes.ArtifactSummary]` + /// - Returns: `[SageMakerClientTypes.ArtifactSummary]` public func artifactSummaries() async throws -> [SageMakerClientTypes.ArtifactSummary] { return try await self.asyncCompactMap { item in item.artifactSummaries } } } - -/// Paginate over `[ListAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociationsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociationsOutputResponse` public func listAssociationsPaginated(input: ListAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociationsInput.nextToken, outputKey: \ListAssociationsOutputResponse.nextToken, paginationFunction: self.listAssociations(input:)) } @@ -252,24 +245,23 @@ extension ListAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociationsPaginated` -/// to access the nested member `[SageMakerClientTypes.AssociationSummary]` -/// - Returns: `[SageMakerClientTypes.AssociationSummary]` extension PaginatorSequence where Input == ListAssociationsInput, Output == ListAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociationsPaginated` + /// to access the nested member `[SageMakerClientTypes.AssociationSummary]` + /// - Returns: `[SageMakerClientTypes.AssociationSummary]` public func associationSummaries() async throws -> [SageMakerClientTypes.AssociationSummary] { return try await self.asyncCompactMap { item in item.associationSummaries } } } - -/// Paginate over `[ListAutoMLJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAutoMLJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAutoMLJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListAutoMLJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAutoMLJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAutoMLJobsOutputResponse` public func listAutoMLJobsPaginated(input: ListAutoMLJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAutoMLJobsInput.nextToken, outputKey: \ListAutoMLJobsOutputResponse.nextToken, paginationFunction: self.listAutoMLJobs(input:)) } @@ -291,24 +283,23 @@ extension ListAutoMLJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAutoMLJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.AutoMLJobSummary]` -/// - Returns: `[SageMakerClientTypes.AutoMLJobSummary]` extension PaginatorSequence where Input == ListAutoMLJobsInput, Output == ListAutoMLJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAutoMLJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.AutoMLJobSummary]` + /// - Returns: `[SageMakerClientTypes.AutoMLJobSummary]` public func autoMLJobSummaries() async throws -> [SageMakerClientTypes.AutoMLJobSummary] { return try await self.asyncCompactMap { item in item.autoMLJobSummaries } } } - -/// Paginate over `[ListCandidatesForAutoMLJobOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCandidatesForAutoMLJobInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCandidatesForAutoMLJobOutputResponse` extension SageMakerClient { + /// Paginate over `[ListCandidatesForAutoMLJobOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCandidatesForAutoMLJobInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCandidatesForAutoMLJobOutputResponse` public func listCandidatesForAutoMLJobPaginated(input: ListCandidatesForAutoMLJobInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCandidatesForAutoMLJobInput.nextToken, outputKey: \ListCandidatesForAutoMLJobOutputResponse.nextToken, paginationFunction: self.listCandidatesForAutoMLJob(input:)) } @@ -327,24 +318,23 @@ extension ListCandidatesForAutoMLJobInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCandidatesForAutoMLJobPaginated` -/// to access the nested member `[SageMakerClientTypes.AutoMLCandidate]` -/// - Returns: `[SageMakerClientTypes.AutoMLCandidate]` extension PaginatorSequence where Input == ListCandidatesForAutoMLJobInput, Output == ListCandidatesForAutoMLJobOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCandidatesForAutoMLJobPaginated` + /// to access the nested member `[SageMakerClientTypes.AutoMLCandidate]` + /// - Returns: `[SageMakerClientTypes.AutoMLCandidate]` public func candidates() async throws -> [SageMakerClientTypes.AutoMLCandidate] { return try await self.asyncCompactMap { item in item.candidates } } } - -/// Paginate over `[ListCodeRepositoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCodeRepositoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCodeRepositoriesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListCodeRepositoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCodeRepositoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCodeRepositoriesOutputResponse` public func listCodeRepositoriesPaginated(input: ListCodeRepositoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCodeRepositoriesInput.nextToken, outputKey: \ListCodeRepositoriesOutputResponse.nextToken, paginationFunction: self.listCodeRepositories(input:)) } @@ -365,24 +355,23 @@ extension ListCodeRepositoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCodeRepositoriesPaginated` -/// to access the nested member `[SageMakerClientTypes.CodeRepositorySummary]` -/// - Returns: `[SageMakerClientTypes.CodeRepositorySummary]` extension PaginatorSequence where Input == ListCodeRepositoriesInput, Output == ListCodeRepositoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCodeRepositoriesPaginated` + /// to access the nested member `[SageMakerClientTypes.CodeRepositorySummary]` + /// - Returns: `[SageMakerClientTypes.CodeRepositorySummary]` public func codeRepositorySummaryList() async throws -> [SageMakerClientTypes.CodeRepositorySummary] { return try await self.asyncCompactMap { item in item.codeRepositorySummaryList } } } - -/// Paginate over `[ListCompilationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCompilationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCompilationJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListCompilationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCompilationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCompilationJobsOutputResponse` public func listCompilationJobsPaginated(input: ListCompilationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCompilationJobsInput.nextToken, outputKey: \ListCompilationJobsOutputResponse.nextToken, paginationFunction: self.listCompilationJobs(input:)) } @@ -404,24 +393,23 @@ extension ListCompilationJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCompilationJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.CompilationJobSummary]` -/// - Returns: `[SageMakerClientTypes.CompilationJobSummary]` extension PaginatorSequence where Input == ListCompilationJobsInput, Output == ListCompilationJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCompilationJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.CompilationJobSummary]` + /// - Returns: `[SageMakerClientTypes.CompilationJobSummary]` public func compilationJobSummaries() async throws -> [SageMakerClientTypes.CompilationJobSummary] { return try await self.asyncCompactMap { item in item.compilationJobSummaries } } } - -/// Paginate over `[ListContextsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListContextsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListContextsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListContextsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListContextsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListContextsOutputResponse` public func listContextsPaginated(input: ListContextsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListContextsInput.nextToken, outputKey: \ListContextsOutputResponse.nextToken, paginationFunction: self.listContexts(input:)) } @@ -441,24 +429,23 @@ extension ListContextsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listContextsPaginated` -/// to access the nested member `[SageMakerClientTypes.ContextSummary]` -/// - Returns: `[SageMakerClientTypes.ContextSummary]` extension PaginatorSequence where Input == ListContextsInput, Output == ListContextsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listContextsPaginated` + /// to access the nested member `[SageMakerClientTypes.ContextSummary]` + /// - Returns: `[SageMakerClientTypes.ContextSummary]` public func contextSummaries() async throws -> [SageMakerClientTypes.ContextSummary] { return try await self.asyncCompactMap { item in item.contextSummaries } } } - -/// Paginate over `[ListDataQualityJobDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDataQualityJobDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityJobDefinitionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListDataQualityJobDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDataQualityJobDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDataQualityJobDefinitionsOutputResponse` public func listDataQualityJobDefinitionsPaginated(input: ListDataQualityJobDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDataQualityJobDefinitionsInput.nextToken, outputKey: \ListDataQualityJobDefinitionsOutputResponse.nextToken, paginationFunction: self.listDataQualityJobDefinitions(input:)) } @@ -478,24 +465,23 @@ extension ListDataQualityJobDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDataQualityJobDefinitionsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` extension PaginatorSequence where Input == ListDataQualityJobDefinitionsInput, Output == ListDataQualityJobDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDataQualityJobDefinitionsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` public func jobDefinitionSummaries() async throws -> [SageMakerClientTypes.MonitoringJobDefinitionSummary] { return try await self.asyncCompactMap { item in item.jobDefinitionSummaries } } } - -/// Paginate over `[ListDeviceFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDeviceFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDeviceFleetsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListDeviceFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDeviceFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDeviceFleetsOutputResponse` public func listDeviceFleetsPaginated(input: ListDeviceFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDeviceFleetsInput.nextToken, outputKey: \ListDeviceFleetsOutputResponse.nextToken, paginationFunction: self.listDeviceFleets(input:)) } @@ -516,24 +502,23 @@ extension ListDeviceFleetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDeviceFleetsPaginated` -/// to access the nested member `[SageMakerClientTypes.DeviceFleetSummary]` -/// - Returns: `[SageMakerClientTypes.DeviceFleetSummary]` extension PaginatorSequence where Input == ListDeviceFleetsInput, Output == ListDeviceFleetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDeviceFleetsPaginated` + /// to access the nested member `[SageMakerClientTypes.DeviceFleetSummary]` + /// - Returns: `[SageMakerClientTypes.DeviceFleetSummary]` public func deviceFleetSummaries() async throws -> [SageMakerClientTypes.DeviceFleetSummary] { return try await self.asyncCompactMap { item in item.deviceFleetSummaries } } } - -/// Paginate over `[ListDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` public func listDevicesPaginated(input: ListDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicesInput.nextToken, outputKey: \ListDevicesOutputResponse.nextToken, paginationFunction: self.listDevices(input:)) } @@ -550,24 +535,23 @@ extension ListDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDevicesPaginated` -/// to access the nested member `[SageMakerClientTypes.DeviceSummary]` -/// - Returns: `[SageMakerClientTypes.DeviceSummary]` extension PaginatorSequence where Input == ListDevicesInput, Output == ListDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDevicesPaginated` + /// to access the nested member `[SageMakerClientTypes.DeviceSummary]` + /// - Returns: `[SageMakerClientTypes.DeviceSummary]` public func deviceSummaries() async throws -> [SageMakerClientTypes.DeviceSummary] { return try await self.asyncCompactMap { item in item.deviceSummaries } } } - -/// Paginate over `[ListDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` public func listDomainsPaginated(input: ListDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsInput.nextToken, outputKey: \ListDomainsOutputResponse.nextToken, paginationFunction: self.listDomains(input:)) } @@ -581,24 +565,23 @@ extension ListDomainsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` -/// to access the nested member `[SageMakerClientTypes.DomainDetails]` -/// - Returns: `[SageMakerClientTypes.DomainDetails]` extension PaginatorSequence where Input == ListDomainsInput, Output == ListDomainsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDomainsPaginated` + /// to access the nested member `[SageMakerClientTypes.DomainDetails]` + /// - Returns: `[SageMakerClientTypes.DomainDetails]` public func domains() async throws -> [SageMakerClientTypes.DomainDetails] { return try await self.asyncCompactMap { item in item.domains } } } - -/// Paginate over `[ListEdgeDeploymentPlansOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEdgeDeploymentPlansInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEdgeDeploymentPlansOutputResponse` extension SageMakerClient { + /// Paginate over `[ListEdgeDeploymentPlansOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEdgeDeploymentPlansInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEdgeDeploymentPlansOutputResponse` public func listEdgeDeploymentPlansPaginated(input: ListEdgeDeploymentPlansInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEdgeDeploymentPlansInput.nextToken, outputKey: \ListEdgeDeploymentPlansOutputResponse.nextToken, paginationFunction: self.listEdgeDeploymentPlans(input:)) } @@ -620,24 +603,23 @@ extension ListEdgeDeploymentPlansInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEdgeDeploymentPlansPaginated` -/// to access the nested member `[SageMakerClientTypes.EdgeDeploymentPlanSummary]` -/// - Returns: `[SageMakerClientTypes.EdgeDeploymentPlanSummary]` extension PaginatorSequence where Input == ListEdgeDeploymentPlansInput, Output == ListEdgeDeploymentPlansOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEdgeDeploymentPlansPaginated` + /// to access the nested member `[SageMakerClientTypes.EdgeDeploymentPlanSummary]` + /// - Returns: `[SageMakerClientTypes.EdgeDeploymentPlanSummary]` public func edgeDeploymentPlanSummaries() async throws -> [SageMakerClientTypes.EdgeDeploymentPlanSummary] { return try await self.asyncCompactMap { item in item.edgeDeploymentPlanSummaries } } } - -/// Paginate over `[ListEdgePackagingJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEdgePackagingJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEdgePackagingJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListEdgePackagingJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEdgePackagingJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEdgePackagingJobsOutputResponse` public func listEdgePackagingJobsPaginated(input: ListEdgePackagingJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEdgePackagingJobsInput.nextToken, outputKey: \ListEdgePackagingJobsOutputResponse.nextToken, paginationFunction: self.listEdgePackagingJobs(input:)) } @@ -660,24 +642,23 @@ extension ListEdgePackagingJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEdgePackagingJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.EdgePackagingJobSummary]` -/// - Returns: `[SageMakerClientTypes.EdgePackagingJobSummary]` extension PaginatorSequence where Input == ListEdgePackagingJobsInput, Output == ListEdgePackagingJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEdgePackagingJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.EdgePackagingJobSummary]` + /// - Returns: `[SageMakerClientTypes.EdgePackagingJobSummary]` public func edgePackagingJobSummaries() async throws -> [SageMakerClientTypes.EdgePackagingJobSummary] { return try await self.asyncCompactMap { item in item.edgePackagingJobSummaries } } } - -/// Paginate over `[ListEndpointConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointConfigsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListEndpointConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointConfigsOutputResponse` public func listEndpointConfigsPaginated(input: ListEndpointConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointConfigsInput.nextToken, outputKey: \ListEndpointConfigsOutputResponse.nextToken, paginationFunction: self.listEndpointConfigs(input:)) } @@ -696,24 +677,23 @@ extension ListEndpointConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointConfigsPaginated` -/// to access the nested member `[SageMakerClientTypes.EndpointConfigSummary]` -/// - Returns: `[SageMakerClientTypes.EndpointConfigSummary]` extension PaginatorSequence where Input == ListEndpointConfigsInput, Output == ListEndpointConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointConfigsPaginated` + /// to access the nested member `[SageMakerClientTypes.EndpointConfigSummary]` + /// - Returns: `[SageMakerClientTypes.EndpointConfigSummary]` public func endpointConfigs() async throws -> [SageMakerClientTypes.EndpointConfigSummary] { return try await self.asyncCompactMap { item in item.endpointConfigs } } } - -/// Paginate over `[ListEndpointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEndpointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListEndpointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEndpointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEndpointsOutputResponse` public func listEndpointsPaginated(input: ListEndpointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEndpointsInput.nextToken, outputKey: \ListEndpointsOutputResponse.nextToken, paginationFunction: self.listEndpoints(input:)) } @@ -735,24 +715,23 @@ extension ListEndpointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` -/// to access the nested member `[SageMakerClientTypes.EndpointSummary]` -/// - Returns: `[SageMakerClientTypes.EndpointSummary]` extension PaginatorSequence where Input == ListEndpointsInput, Output == ListEndpointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEndpointsPaginated` + /// to access the nested member `[SageMakerClientTypes.EndpointSummary]` + /// - Returns: `[SageMakerClientTypes.EndpointSummary]` public func endpoints() async throws -> [SageMakerClientTypes.EndpointSummary] { return try await self.asyncCompactMap { item in item.endpoints } } } - -/// Paginate over `[ListExperimentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExperimentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExperimentsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListExperimentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExperimentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExperimentsOutputResponse` public func listExperimentsPaginated(input: ListExperimentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExperimentsInput.nextToken, outputKey: \ListExperimentsOutputResponse.nextToken, paginationFunction: self.listExperiments(input:)) } @@ -770,24 +749,23 @@ extension ListExperimentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExperimentsPaginated` -/// to access the nested member `[SageMakerClientTypes.ExperimentSummary]` -/// - Returns: `[SageMakerClientTypes.ExperimentSummary]` extension PaginatorSequence where Input == ListExperimentsInput, Output == ListExperimentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExperimentsPaginated` + /// to access the nested member `[SageMakerClientTypes.ExperimentSummary]` + /// - Returns: `[SageMakerClientTypes.ExperimentSummary]` public func experimentSummaries() async throws -> [SageMakerClientTypes.ExperimentSummary] { return try await self.asyncCompactMap { item in item.experimentSummaries } } } - -/// Paginate over `[ListFlowDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFlowDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFlowDefinitionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListFlowDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFlowDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFlowDefinitionsOutputResponse` public func listFlowDefinitionsPaginated(input: ListFlowDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFlowDefinitionsInput.nextToken, outputKey: \ListFlowDefinitionsOutputResponse.nextToken, paginationFunction: self.listFlowDefinitions(input:)) } @@ -804,24 +782,23 @@ extension ListFlowDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFlowDefinitionsPaginated` -/// to access the nested member `[SageMakerClientTypes.FlowDefinitionSummary]` -/// - Returns: `[SageMakerClientTypes.FlowDefinitionSummary]` extension PaginatorSequence where Input == ListFlowDefinitionsInput, Output == ListFlowDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFlowDefinitionsPaginated` + /// to access the nested member `[SageMakerClientTypes.FlowDefinitionSummary]` + /// - Returns: `[SageMakerClientTypes.FlowDefinitionSummary]` public func flowDefinitionSummaries() async throws -> [SageMakerClientTypes.FlowDefinitionSummary] { return try await self.asyncCompactMap { item in item.flowDefinitionSummaries } } } - -/// Paginate over `[ListHumanTaskUisOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHumanTaskUisInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHumanTaskUisOutputResponse` extension SageMakerClient { + /// Paginate over `[ListHumanTaskUisOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHumanTaskUisInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHumanTaskUisOutputResponse` public func listHumanTaskUisPaginated(input: ListHumanTaskUisInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHumanTaskUisInput.nextToken, outputKey: \ListHumanTaskUisOutputResponse.nextToken, paginationFunction: self.listHumanTaskUis(input:)) } @@ -838,24 +815,23 @@ extension ListHumanTaskUisInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHumanTaskUisPaginated` -/// to access the nested member `[SageMakerClientTypes.HumanTaskUiSummary]` -/// - Returns: `[SageMakerClientTypes.HumanTaskUiSummary]` extension PaginatorSequence where Input == ListHumanTaskUisInput, Output == ListHumanTaskUisOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHumanTaskUisPaginated` + /// to access the nested member `[SageMakerClientTypes.HumanTaskUiSummary]` + /// - Returns: `[SageMakerClientTypes.HumanTaskUiSummary]` public func humanTaskUiSummaries() async throws -> [SageMakerClientTypes.HumanTaskUiSummary] { return try await self.asyncCompactMap { item in item.humanTaskUiSummaries } } } - -/// Paginate over `[ListHyperParameterTuningJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHyperParameterTuningJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHyperParameterTuningJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListHyperParameterTuningJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHyperParameterTuningJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHyperParameterTuningJobsOutputResponse` public func listHyperParameterTuningJobsPaginated(input: ListHyperParameterTuningJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHyperParameterTuningJobsInput.nextToken, outputKey: \ListHyperParameterTuningJobsOutputResponse.nextToken, paginationFunction: self.listHyperParameterTuningJobs(input:)) } @@ -877,24 +853,23 @@ extension ListHyperParameterTuningJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHyperParameterTuningJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.HyperParameterTuningJobSummary]` -/// - Returns: `[SageMakerClientTypes.HyperParameterTuningJobSummary]` extension PaginatorSequence where Input == ListHyperParameterTuningJobsInput, Output == ListHyperParameterTuningJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHyperParameterTuningJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.HyperParameterTuningJobSummary]` + /// - Returns: `[SageMakerClientTypes.HyperParameterTuningJobSummary]` public func hyperParameterTuningJobSummaries() async throws -> [SageMakerClientTypes.HyperParameterTuningJobSummary] { return try await self.asyncCompactMap { item in item.hyperParameterTuningJobSummaries } } } - -/// Paginate over `[ListImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImagesOutputResponse` public func listImagesPaginated(input: ListImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImagesInput.nextToken, outputKey: \ListImagesOutputResponse.nextToken, paginationFunction: self.listImages(input:)) } @@ -915,24 +890,23 @@ extension ListImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImagesPaginated` -/// to access the nested member `[SageMakerClientTypes.Image]` -/// - Returns: `[SageMakerClientTypes.Image]` extension PaginatorSequence where Input == ListImagesInput, Output == ListImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImagesPaginated` + /// to access the nested member `[SageMakerClientTypes.Image]` + /// - Returns: `[SageMakerClientTypes.Image]` public func images() async throws -> [SageMakerClientTypes.Image] { return try await self.asyncCompactMap { item in item.images } } } - -/// Paginate over `[ListImageVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImageVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImageVersionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListImageVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImageVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImageVersionsOutputResponse` public func listImageVersionsPaginated(input: ListImageVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImageVersionsInput.nextToken, outputKey: \ListImageVersionsOutputResponse.nextToken, paginationFunction: self.listImageVersions(input:)) } @@ -953,24 +927,23 @@ extension ListImageVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listImageVersionsPaginated` -/// to access the nested member `[SageMakerClientTypes.ImageVersion]` -/// - Returns: `[SageMakerClientTypes.ImageVersion]` extension PaginatorSequence where Input == ListImageVersionsInput, Output == ListImageVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listImageVersionsPaginated` + /// to access the nested member `[SageMakerClientTypes.ImageVersion]` + /// - Returns: `[SageMakerClientTypes.ImageVersion]` public func imageVersions() async throws -> [SageMakerClientTypes.ImageVersion] { return try await self.asyncCompactMap { item in item.imageVersions } } } - -/// Paginate over `[ListInferenceExperimentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceExperimentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceExperimentsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListInferenceExperimentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceExperimentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceExperimentsOutputResponse` public func listInferenceExperimentsPaginated(input: ListInferenceExperimentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceExperimentsInput.nextToken, outputKey: \ListInferenceExperimentsOutputResponse.nextToken, paginationFunction: self.listInferenceExperiments(input:)) } @@ -993,24 +966,23 @@ extension ListInferenceExperimentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInferenceExperimentsPaginated` -/// to access the nested member `[SageMakerClientTypes.InferenceExperimentSummary]` -/// - Returns: `[SageMakerClientTypes.InferenceExperimentSummary]` extension PaginatorSequence where Input == ListInferenceExperimentsInput, Output == ListInferenceExperimentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInferenceExperimentsPaginated` + /// to access the nested member `[SageMakerClientTypes.InferenceExperimentSummary]` + /// - Returns: `[SageMakerClientTypes.InferenceExperimentSummary]` public func inferenceExperiments() async throws -> [SageMakerClientTypes.InferenceExperimentSummary] { return try await self.asyncCompactMap { item in item.inferenceExperiments } } } - -/// Paginate over `[ListInferenceRecommendationsJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceRecommendationsJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceRecommendationsJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListInferenceRecommendationsJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceRecommendationsJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceRecommendationsJobsOutputResponse` public func listInferenceRecommendationsJobsPaginated(input: ListInferenceRecommendationsJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceRecommendationsJobsInput.nextToken, outputKey: \ListInferenceRecommendationsJobsOutputResponse.nextToken, paginationFunction: self.listInferenceRecommendationsJobs(input:)) } @@ -1032,24 +1004,23 @@ extension ListInferenceRecommendationsJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInferenceRecommendationsJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.InferenceRecommendationsJob]` -/// - Returns: `[SageMakerClientTypes.InferenceRecommendationsJob]` extension PaginatorSequence where Input == ListInferenceRecommendationsJobsInput, Output == ListInferenceRecommendationsJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInferenceRecommendationsJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.InferenceRecommendationsJob]` + /// - Returns: `[SageMakerClientTypes.InferenceRecommendationsJob]` public func inferenceRecommendationsJobs() async throws -> [SageMakerClientTypes.InferenceRecommendationsJob] { return try await self.asyncCompactMap { item in item.inferenceRecommendationsJobs } } } - -/// Paginate over `[ListInferenceRecommendationsJobStepsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInferenceRecommendationsJobStepsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInferenceRecommendationsJobStepsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListInferenceRecommendationsJobStepsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInferenceRecommendationsJobStepsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInferenceRecommendationsJobStepsOutputResponse` public func listInferenceRecommendationsJobStepsPaginated(input: ListInferenceRecommendationsJobStepsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInferenceRecommendationsJobStepsInput.nextToken, outputKey: \ListInferenceRecommendationsJobStepsOutputResponse.nextToken, paginationFunction: self.listInferenceRecommendationsJobSteps(input:)) } @@ -1066,24 +1037,23 @@ extension ListInferenceRecommendationsJobStepsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listInferenceRecommendationsJobStepsPaginated` -/// to access the nested member `[SageMakerClientTypes.InferenceRecommendationsJobStep]` -/// - Returns: `[SageMakerClientTypes.InferenceRecommendationsJobStep]` extension PaginatorSequence where Input == ListInferenceRecommendationsJobStepsInput, Output == ListInferenceRecommendationsJobStepsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInferenceRecommendationsJobStepsPaginated` + /// to access the nested member `[SageMakerClientTypes.InferenceRecommendationsJobStep]` + /// - Returns: `[SageMakerClientTypes.InferenceRecommendationsJobStep]` public func steps() async throws -> [SageMakerClientTypes.InferenceRecommendationsJobStep] { return try await self.asyncCompactMap { item in item.steps } } } - -/// Paginate over `[ListLabelingJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLabelingJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLabelingJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListLabelingJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLabelingJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLabelingJobsOutputResponse` public func listLabelingJobsPaginated(input: ListLabelingJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLabelingJobsInput.nextToken, outputKey: \ListLabelingJobsOutputResponse.nextToken, paginationFunction: self.listLabelingJobs(input:)) } @@ -1105,24 +1075,23 @@ extension ListLabelingJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLabelingJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.LabelingJobSummary]` -/// - Returns: `[SageMakerClientTypes.LabelingJobSummary]` extension PaginatorSequence where Input == ListLabelingJobsInput, Output == ListLabelingJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLabelingJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.LabelingJobSummary]` + /// - Returns: `[SageMakerClientTypes.LabelingJobSummary]` public func labelingJobSummaryList() async throws -> [SageMakerClientTypes.LabelingJobSummary] { return try await self.asyncCompactMap { item in item.labelingJobSummaryList } } } - -/// Paginate over `[ListLabelingJobsForWorkteamOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLabelingJobsForWorkteamInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLabelingJobsForWorkteamOutputResponse` extension SageMakerClient { + /// Paginate over `[ListLabelingJobsForWorkteamOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLabelingJobsForWorkteamInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLabelingJobsForWorkteamOutputResponse` public func listLabelingJobsForWorkteamPaginated(input: ListLabelingJobsForWorkteamInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLabelingJobsForWorkteamInput.nextToken, outputKey: \ListLabelingJobsForWorkteamOutputResponse.nextToken, paginationFunction: self.listLabelingJobsForWorkteam(input:)) } @@ -1142,24 +1111,23 @@ extension ListLabelingJobsForWorkteamInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLabelingJobsForWorkteamPaginated` -/// to access the nested member `[SageMakerClientTypes.LabelingJobForWorkteamSummary]` -/// - Returns: `[SageMakerClientTypes.LabelingJobForWorkteamSummary]` extension PaginatorSequence where Input == ListLabelingJobsForWorkteamInput, Output == ListLabelingJobsForWorkteamOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLabelingJobsForWorkteamPaginated` + /// to access the nested member `[SageMakerClientTypes.LabelingJobForWorkteamSummary]` + /// - Returns: `[SageMakerClientTypes.LabelingJobForWorkteamSummary]` public func labelingJobSummaryList() async throws -> [SageMakerClientTypes.LabelingJobForWorkteamSummary] { return try await self.asyncCompactMap { item in item.labelingJobSummaryList } } } - -/// Paginate over `[ListLineageGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLineageGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLineageGroupsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListLineageGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLineageGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLineageGroupsOutputResponse` public func listLineageGroupsPaginated(input: ListLineageGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLineageGroupsInput.nextToken, outputKey: \ListLineageGroupsOutputResponse.nextToken, paginationFunction: self.listLineageGroups(input:)) } @@ -1177,24 +1145,23 @@ extension ListLineageGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLineageGroupsPaginated` -/// to access the nested member `[SageMakerClientTypes.LineageGroupSummary]` -/// - Returns: `[SageMakerClientTypes.LineageGroupSummary]` extension PaginatorSequence where Input == ListLineageGroupsInput, Output == ListLineageGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLineageGroupsPaginated` + /// to access the nested member `[SageMakerClientTypes.LineageGroupSummary]` + /// - Returns: `[SageMakerClientTypes.LineageGroupSummary]` public func lineageGroupSummaries() async throws -> [SageMakerClientTypes.LineageGroupSummary] { return try await self.asyncCompactMap { item in item.lineageGroupSummaries } } } - -/// Paginate over `[ListModelBiasJobDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelBiasJobDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelBiasJobDefinitionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelBiasJobDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelBiasJobDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelBiasJobDefinitionsOutputResponse` public func listModelBiasJobDefinitionsPaginated(input: ListModelBiasJobDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelBiasJobDefinitionsInput.nextToken, outputKey: \ListModelBiasJobDefinitionsOutputResponse.nextToken, paginationFunction: self.listModelBiasJobDefinitions(input:)) } @@ -1214,24 +1181,23 @@ extension ListModelBiasJobDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelBiasJobDefinitionsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` extension PaginatorSequence where Input == ListModelBiasJobDefinitionsInput, Output == ListModelBiasJobDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelBiasJobDefinitionsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` public func jobDefinitionSummaries() async throws -> [SageMakerClientTypes.MonitoringJobDefinitionSummary] { return try await self.asyncCompactMap { item in item.jobDefinitionSummaries } } } - -/// Paginate over `[ListModelCardExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelCardExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelCardExportJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelCardExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelCardExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelCardExportJobsOutputResponse` public func listModelCardExportJobsPaginated(input: ListModelCardExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelCardExportJobsInput.nextToken, outputKey: \ListModelCardExportJobsOutputResponse.nextToken, paginationFunction: self.listModelCardExportJobs(input:)) } @@ -1253,24 +1219,23 @@ extension ListModelCardExportJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelCardExportJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelCardExportJobSummary]` -/// - Returns: `[SageMakerClientTypes.ModelCardExportJobSummary]` extension PaginatorSequence where Input == ListModelCardExportJobsInput, Output == ListModelCardExportJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelCardExportJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelCardExportJobSummary]` + /// - Returns: `[SageMakerClientTypes.ModelCardExportJobSummary]` public func modelCardExportJobSummaries() async throws -> [SageMakerClientTypes.ModelCardExportJobSummary] { return try await self.asyncCompactMap { item in item.modelCardExportJobSummaries } } } - -/// Paginate over `[ListModelCardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelCardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelCardsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelCardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelCardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelCardsOutputResponse` public func listModelCardsPaginated(input: ListModelCardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelCardsInput.nextToken, outputKey: \ListModelCardsOutputResponse.nextToken, paginationFunction: self.listModelCards(input:)) } @@ -1290,24 +1255,23 @@ extension ListModelCardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelCardsPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelCardSummary]` -/// - Returns: `[SageMakerClientTypes.ModelCardSummary]` extension PaginatorSequence where Input == ListModelCardsInput, Output == ListModelCardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelCardsPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelCardSummary]` + /// - Returns: `[SageMakerClientTypes.ModelCardSummary]` public func modelCardSummaries() async throws -> [SageMakerClientTypes.ModelCardSummary] { return try await self.asyncCompactMap { item in item.modelCardSummaries } } } - -/// Paginate over `[ListModelCardVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelCardVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelCardVersionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelCardVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelCardVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelCardVersionsOutputResponse` public func listModelCardVersionsPaginated(input: ListModelCardVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelCardVersionsInput.nextToken, outputKey: \ListModelCardVersionsOutputResponse.nextToken, paginationFunction: self.listModelCardVersions(input:)) } @@ -1327,24 +1291,23 @@ extension ListModelCardVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelCardVersionsPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelCardVersionSummary]` -/// - Returns: `[SageMakerClientTypes.ModelCardVersionSummary]` extension PaginatorSequence where Input == ListModelCardVersionsInput, Output == ListModelCardVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelCardVersionsPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelCardVersionSummary]` + /// - Returns: `[SageMakerClientTypes.ModelCardVersionSummary]` public func modelCardVersionSummaryList() async throws -> [SageMakerClientTypes.ModelCardVersionSummary] { return try await self.asyncCompactMap { item in item.modelCardVersionSummaryList } } } - -/// Paginate over `[ListModelExplainabilityJobDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelExplainabilityJobDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelExplainabilityJobDefinitionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelExplainabilityJobDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelExplainabilityJobDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelExplainabilityJobDefinitionsOutputResponse` public func listModelExplainabilityJobDefinitionsPaginated(input: ListModelExplainabilityJobDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelExplainabilityJobDefinitionsInput.nextToken, outputKey: \ListModelExplainabilityJobDefinitionsOutputResponse.nextToken, paginationFunction: self.listModelExplainabilityJobDefinitions(input:)) } @@ -1364,24 +1327,23 @@ extension ListModelExplainabilityJobDefinitionsInput: ClientRuntime.PaginateToke )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelExplainabilityJobDefinitionsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` extension PaginatorSequence where Input == ListModelExplainabilityJobDefinitionsInput, Output == ListModelExplainabilityJobDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelExplainabilityJobDefinitionsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` public func jobDefinitionSummaries() async throws -> [SageMakerClientTypes.MonitoringJobDefinitionSummary] { return try await self.asyncCompactMap { item in item.jobDefinitionSummaries } } } - -/// Paginate over `[ListModelMetadataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelMetadataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelMetadataOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelMetadataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelMetadataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelMetadataOutputResponse` public func listModelMetadataPaginated(input: ListModelMetadataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelMetadataInput.nextToken, outputKey: \ListModelMetadataOutputResponse.nextToken, paginationFunction: self.listModelMetadata(input:)) } @@ -1396,24 +1358,23 @@ extension ListModelMetadataInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelMetadataPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelMetadataSummary]` -/// - Returns: `[SageMakerClientTypes.ModelMetadataSummary]` extension PaginatorSequence where Input == ListModelMetadataInput, Output == ListModelMetadataOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelMetadataPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelMetadataSummary]` + /// - Returns: `[SageMakerClientTypes.ModelMetadataSummary]` public func modelMetadataSummaries() async throws -> [SageMakerClientTypes.ModelMetadataSummary] { return try await self.asyncCompactMap { item in item.modelMetadataSummaries } } } - -/// Paginate over `[ListModelPackageGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelPackageGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelPackageGroupsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelPackageGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelPackageGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelPackageGroupsOutputResponse` public func listModelPackageGroupsPaginated(input: ListModelPackageGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelPackageGroupsInput.nextToken, outputKey: \ListModelPackageGroupsOutputResponse.nextToken, paginationFunction: self.listModelPackageGroups(input:)) } @@ -1432,24 +1393,23 @@ extension ListModelPackageGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelPackageGroupsPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelPackageGroupSummary]` -/// - Returns: `[SageMakerClientTypes.ModelPackageGroupSummary]` extension PaginatorSequence where Input == ListModelPackageGroupsInput, Output == ListModelPackageGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelPackageGroupsPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelPackageGroupSummary]` + /// - Returns: `[SageMakerClientTypes.ModelPackageGroupSummary]` public func modelPackageGroupSummaryList() async throws -> [SageMakerClientTypes.ModelPackageGroupSummary] { return try await self.asyncCompactMap { item in item.modelPackageGroupSummaryList } } } - -/// Paginate over `[ListModelPackagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelPackagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelPackagesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelPackagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelPackagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelPackagesOutputResponse` public func listModelPackagesPaginated(input: ListModelPackagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelPackagesInput.nextToken, outputKey: \ListModelPackagesOutputResponse.nextToken, paginationFunction: self.listModelPackages(input:)) } @@ -1471,24 +1431,23 @@ extension ListModelPackagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelPackagesPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelPackageSummary]` -/// - Returns: `[SageMakerClientTypes.ModelPackageSummary]` extension PaginatorSequence where Input == ListModelPackagesInput, Output == ListModelPackagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelPackagesPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelPackageSummary]` + /// - Returns: `[SageMakerClientTypes.ModelPackageSummary]` public func modelPackageSummaryList() async throws -> [SageMakerClientTypes.ModelPackageSummary] { return try await self.asyncCompactMap { item in item.modelPackageSummaryList } } } - -/// Paginate over `[ListModelQualityJobDefinitionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelQualityJobDefinitionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelQualityJobDefinitionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelQualityJobDefinitionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelQualityJobDefinitionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelQualityJobDefinitionsOutputResponse` public func listModelQualityJobDefinitionsPaginated(input: ListModelQualityJobDefinitionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelQualityJobDefinitionsInput.nextToken, outputKey: \ListModelQualityJobDefinitionsOutputResponse.nextToken, paginationFunction: self.listModelQualityJobDefinitions(input:)) } @@ -1508,24 +1467,23 @@ extension ListModelQualityJobDefinitionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelQualityJobDefinitionsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` extension PaginatorSequence where Input == ListModelQualityJobDefinitionsInput, Output == ListModelQualityJobDefinitionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelQualityJobDefinitionsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringJobDefinitionSummary]` public func jobDefinitionSummaries() async throws -> [SageMakerClientTypes.MonitoringJobDefinitionSummary] { return try await self.asyncCompactMap { item in item.jobDefinitionSummaries } } } - -/// Paginate over `[ListModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListModelsOutputResponse` public func listModelsPaginated(input: ListModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListModelsInput.nextToken, outputKey: \ListModelsOutputResponse.nextToken, paginationFunction: self.listModels(input:)) } @@ -1544,24 +1502,23 @@ extension ListModelsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listModelsPaginated` -/// to access the nested member `[SageMakerClientTypes.ModelSummary]` -/// - Returns: `[SageMakerClientTypes.ModelSummary]` extension PaginatorSequence where Input == ListModelsInput, Output == ListModelsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listModelsPaginated` + /// to access the nested member `[SageMakerClientTypes.ModelSummary]` + /// - Returns: `[SageMakerClientTypes.ModelSummary]` public func models() async throws -> [SageMakerClientTypes.ModelSummary] { return try await self.asyncCompactMap { item in item.models } } } - -/// Paginate over `[ListMonitoringAlertHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitoringAlertHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringAlertHistoryOutputResponse` extension SageMakerClient { + /// Paginate over `[ListMonitoringAlertHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitoringAlertHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringAlertHistoryOutputResponse` public func listMonitoringAlertHistoryPaginated(input: ListMonitoringAlertHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitoringAlertHistoryInput.nextToken, outputKey: \ListMonitoringAlertHistoryOutputResponse.nextToken, paginationFunction: self.listMonitoringAlertHistory(input:)) } @@ -1582,24 +1539,23 @@ extension ListMonitoringAlertHistoryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitoringAlertHistoryPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringAlertHistorySummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringAlertHistorySummary]` extension PaginatorSequence where Input == ListMonitoringAlertHistoryInput, Output == ListMonitoringAlertHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitoringAlertHistoryPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringAlertHistorySummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringAlertHistorySummary]` public func monitoringAlertHistory() async throws -> [SageMakerClientTypes.MonitoringAlertHistorySummary] { return try await self.asyncCompactMap { item in item.monitoringAlertHistory } } } - -/// Paginate over `[ListMonitoringAlertsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitoringAlertsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringAlertsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListMonitoringAlertsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitoringAlertsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringAlertsOutputResponse` public func listMonitoringAlertsPaginated(input: ListMonitoringAlertsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitoringAlertsInput.nextToken, outputKey: \ListMonitoringAlertsOutputResponse.nextToken, paginationFunction: self.listMonitoringAlerts(input:)) } @@ -1614,24 +1570,23 @@ extension ListMonitoringAlertsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitoringAlertsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringAlertSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringAlertSummary]` extension PaginatorSequence where Input == ListMonitoringAlertsInput, Output == ListMonitoringAlertsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitoringAlertsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringAlertSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringAlertSummary]` public func monitoringAlertSummaries() async throws -> [SageMakerClientTypes.MonitoringAlertSummary] { return try await self.asyncCompactMap { item in item.monitoringAlertSummaries } } } - -/// Paginate over `[ListMonitoringExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitoringExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringExecutionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListMonitoringExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitoringExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringExecutionsOutputResponse` public func listMonitoringExecutionsPaginated(input: ListMonitoringExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitoringExecutionsInput.nextToken, outputKey: \ListMonitoringExecutionsOutputResponse.nextToken, paginationFunction: self.listMonitoringExecutions(input:)) } @@ -1658,24 +1613,23 @@ extension ListMonitoringExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitoringExecutionsPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringExecutionSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringExecutionSummary]` extension PaginatorSequence where Input == ListMonitoringExecutionsInput, Output == ListMonitoringExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitoringExecutionsPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringExecutionSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringExecutionSummary]` public func monitoringExecutionSummaries() async throws -> [SageMakerClientTypes.MonitoringExecutionSummary] { return try await self.asyncCompactMap { item in item.monitoringExecutionSummaries } } } - -/// Paginate over `[ListMonitoringSchedulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMonitoringSchedulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringSchedulesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListMonitoringSchedulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMonitoringSchedulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMonitoringSchedulesOutputResponse` public func listMonitoringSchedulesPaginated(input: ListMonitoringSchedulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMonitoringSchedulesInput.nextToken, outputKey: \ListMonitoringSchedulesOutputResponse.nextToken, paginationFunction: self.listMonitoringSchedules(input:)) } @@ -1700,24 +1654,23 @@ extension ListMonitoringSchedulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMonitoringSchedulesPaginated` -/// to access the nested member `[SageMakerClientTypes.MonitoringScheduleSummary]` -/// - Returns: `[SageMakerClientTypes.MonitoringScheduleSummary]` extension PaginatorSequence where Input == ListMonitoringSchedulesInput, Output == ListMonitoringSchedulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMonitoringSchedulesPaginated` + /// to access the nested member `[SageMakerClientTypes.MonitoringScheduleSummary]` + /// - Returns: `[SageMakerClientTypes.MonitoringScheduleSummary]` public func monitoringScheduleSummaries() async throws -> [SageMakerClientTypes.MonitoringScheduleSummary] { return try await self.asyncCompactMap { item in item.monitoringScheduleSummaries } } } - -/// Paginate over `[ListNotebookInstanceLifecycleConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotebookInstanceLifecycleConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotebookInstanceLifecycleConfigsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListNotebookInstanceLifecycleConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotebookInstanceLifecycleConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotebookInstanceLifecycleConfigsOutputResponse` public func listNotebookInstanceLifecycleConfigsPaginated(input: ListNotebookInstanceLifecycleConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotebookInstanceLifecycleConfigsInput.nextToken, outputKey: \ListNotebookInstanceLifecycleConfigsOutputResponse.nextToken, paginationFunction: self.listNotebookInstanceLifecycleConfigs(input:)) } @@ -1738,24 +1691,23 @@ extension ListNotebookInstanceLifecycleConfigsInput: ClientRuntime.PaginateToken )} } -/// This paginator transforms the `AsyncSequence` returned by `listNotebookInstanceLifecycleConfigsPaginated` -/// to access the nested member `[SageMakerClientTypes.NotebookInstanceLifecycleConfigSummary]` -/// - Returns: `[SageMakerClientTypes.NotebookInstanceLifecycleConfigSummary]` extension PaginatorSequence where Input == ListNotebookInstanceLifecycleConfigsInput, Output == ListNotebookInstanceLifecycleConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNotebookInstanceLifecycleConfigsPaginated` + /// to access the nested member `[SageMakerClientTypes.NotebookInstanceLifecycleConfigSummary]` + /// - Returns: `[SageMakerClientTypes.NotebookInstanceLifecycleConfigSummary]` public func notebookInstanceLifecycleConfigs() async throws -> [SageMakerClientTypes.NotebookInstanceLifecycleConfigSummary] { return try await self.asyncCompactMap { item in item.notebookInstanceLifecycleConfigs } } } - -/// Paginate over `[ListNotebookInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotebookInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotebookInstancesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListNotebookInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotebookInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotebookInstancesOutputResponse` public func listNotebookInstancesPaginated(input: ListNotebookInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotebookInstancesInput.nextToken, outputKey: \ListNotebookInstancesOutputResponse.nextToken, paginationFunction: self.listNotebookInstances(input:)) } @@ -1780,24 +1732,23 @@ extension ListNotebookInstancesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listNotebookInstancesPaginated` -/// to access the nested member `[SageMakerClientTypes.NotebookInstanceSummary]` -/// - Returns: `[SageMakerClientTypes.NotebookInstanceSummary]` extension PaginatorSequence where Input == ListNotebookInstancesInput, Output == ListNotebookInstancesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listNotebookInstancesPaginated` + /// to access the nested member `[SageMakerClientTypes.NotebookInstanceSummary]` + /// - Returns: `[SageMakerClientTypes.NotebookInstanceSummary]` public func notebookInstances() async throws -> [SageMakerClientTypes.NotebookInstanceSummary] { return try await self.asyncCompactMap { item in item.notebookInstances } } } - -/// Paginate over `[ListPipelineExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelineExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListPipelineExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelineExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionsOutputResponse` public func listPipelineExecutionsPaginated(input: ListPipelineExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelineExecutionsInput.nextToken, outputKey: \ListPipelineExecutionsOutputResponse.nextToken, paginationFunction: self.listPipelineExecutions(input:)) } @@ -1816,24 +1767,23 @@ extension ListPipelineExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelineExecutionsPaginated` -/// to access the nested member `[SageMakerClientTypes.PipelineExecutionSummary]` -/// - Returns: `[SageMakerClientTypes.PipelineExecutionSummary]` extension PaginatorSequence where Input == ListPipelineExecutionsInput, Output == ListPipelineExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelineExecutionsPaginated` + /// to access the nested member `[SageMakerClientTypes.PipelineExecutionSummary]` + /// - Returns: `[SageMakerClientTypes.PipelineExecutionSummary]` public func pipelineExecutionSummaries() async throws -> [SageMakerClientTypes.PipelineExecutionSummary] { return try await self.asyncCompactMap { item in item.pipelineExecutionSummaries } } } - -/// Paginate over `[ListPipelineExecutionStepsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelineExecutionStepsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionStepsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListPipelineExecutionStepsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelineExecutionStepsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelineExecutionStepsOutputResponse` public func listPipelineExecutionStepsPaginated(input: ListPipelineExecutionStepsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelineExecutionStepsInput.nextToken, outputKey: \ListPipelineExecutionStepsOutputResponse.nextToken, paginationFunction: self.listPipelineExecutionSteps(input:)) } @@ -1849,24 +1799,23 @@ extension ListPipelineExecutionStepsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelineExecutionStepsPaginated` -/// to access the nested member `[SageMakerClientTypes.PipelineExecutionStep]` -/// - Returns: `[SageMakerClientTypes.PipelineExecutionStep]` extension PaginatorSequence where Input == ListPipelineExecutionStepsInput, Output == ListPipelineExecutionStepsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelineExecutionStepsPaginated` + /// to access the nested member `[SageMakerClientTypes.PipelineExecutionStep]` + /// - Returns: `[SageMakerClientTypes.PipelineExecutionStep]` public func pipelineExecutionSteps() async throws -> [SageMakerClientTypes.PipelineExecutionStep] { return try await self.asyncCompactMap { item in item.pipelineExecutionSteps } } } - -/// Paginate over `[ListPipelineParametersForExecutionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelineParametersForExecutionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelineParametersForExecutionOutputResponse` extension SageMakerClient { + /// Paginate over `[ListPipelineParametersForExecutionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelineParametersForExecutionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelineParametersForExecutionOutputResponse` public func listPipelineParametersForExecutionPaginated(input: ListPipelineParametersForExecutionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelineParametersForExecutionInput.nextToken, outputKey: \ListPipelineParametersForExecutionOutputResponse.nextToken, paginationFunction: self.listPipelineParametersForExecution(input:)) } @@ -1881,24 +1830,23 @@ extension ListPipelineParametersForExecutionInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelineParametersForExecutionPaginated` -/// to access the nested member `[SageMakerClientTypes.Parameter]` -/// - Returns: `[SageMakerClientTypes.Parameter]` extension PaginatorSequence where Input == ListPipelineParametersForExecutionInput, Output == ListPipelineParametersForExecutionOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelineParametersForExecutionPaginated` + /// to access the nested member `[SageMakerClientTypes.Parameter]` + /// - Returns: `[SageMakerClientTypes.Parameter]` public func pipelineParameters() async throws -> [SageMakerClientTypes.Parameter] { return try await self.asyncCompactMap { item in item.pipelineParameters } } } - -/// Paginate over `[ListPipelinesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPipelinesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListPipelinesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPipelinesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPipelinesOutputResponse` public func listPipelinesPaginated(input: ListPipelinesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPipelinesInput.nextToken, outputKey: \ListPipelinesOutputResponse.nextToken, paginationFunction: self.listPipelines(input:)) } @@ -1917,24 +1865,23 @@ extension ListPipelinesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` -/// to access the nested member `[SageMakerClientTypes.PipelineSummary]` -/// - Returns: `[SageMakerClientTypes.PipelineSummary]` extension PaginatorSequence where Input == ListPipelinesInput, Output == ListPipelinesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listPipelinesPaginated` + /// to access the nested member `[SageMakerClientTypes.PipelineSummary]` + /// - Returns: `[SageMakerClientTypes.PipelineSummary]` public func pipelineSummaries() async throws -> [SageMakerClientTypes.PipelineSummary] { return try await self.asyncCompactMap { item in item.pipelineSummaries } } } - -/// Paginate over `[ListProcessingJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProcessingJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProcessingJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListProcessingJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProcessingJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProcessingJobsOutputResponse` public func listProcessingJobsPaginated(input: ListProcessingJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProcessingJobsInput.nextToken, outputKey: \ListProcessingJobsOutputResponse.nextToken, paginationFunction: self.listProcessingJobs(input:)) } @@ -1956,24 +1903,23 @@ extension ListProcessingJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProcessingJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.ProcessingJobSummary]` -/// - Returns: `[SageMakerClientTypes.ProcessingJobSummary]` extension PaginatorSequence where Input == ListProcessingJobsInput, Output == ListProcessingJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProcessingJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.ProcessingJobSummary]` + /// - Returns: `[SageMakerClientTypes.ProcessingJobSummary]` public func processingJobSummaries() async throws -> [SageMakerClientTypes.ProcessingJobSummary] { return try await self.asyncCompactMap { item in item.processingJobSummaries } } } - -/// Paginate over `[ListProjectsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProjectsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListProjectsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProjectsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProjectsOutputResponse` public func listProjectsPaginated(input: ListProjectsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProjectsInput.nextToken, outputKey: \ListProjectsOutputResponse.nextToken, paginationFunction: self.listProjects(input:)) } @@ -1991,16 +1937,15 @@ extension ListProjectsInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[ListSpacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSpacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSpacesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListSpacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSpacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSpacesOutputResponse` public func listSpacesPaginated(input: ListSpacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSpacesInput.nextToken, outputKey: \ListSpacesOutputResponse.nextToken, paginationFunction: self.listSpaces(input:)) } @@ -2018,24 +1963,23 @@ extension ListSpacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSpacesPaginated` -/// to access the nested member `[SageMakerClientTypes.SpaceDetails]` -/// - Returns: `[SageMakerClientTypes.SpaceDetails]` extension PaginatorSequence where Input == ListSpacesInput, Output == ListSpacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSpacesPaginated` + /// to access the nested member `[SageMakerClientTypes.SpaceDetails]` + /// - Returns: `[SageMakerClientTypes.SpaceDetails]` public func spaces() async throws -> [SageMakerClientTypes.SpaceDetails] { return try await self.asyncCompactMap { item in item.spaces } } } - -/// Paginate over `[ListStageDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStageDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStageDevicesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListStageDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStageDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStageDevicesOutputResponse` public func listStageDevicesPaginated(input: ListStageDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStageDevicesInput.nextToken, outputKey: \ListStageDevicesOutputResponse.nextToken, paginationFunction: self.listStageDevices(input:)) } @@ -2052,24 +1996,23 @@ extension ListStageDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStageDevicesPaginated` -/// to access the nested member `[SageMakerClientTypes.DeviceDeploymentSummary]` -/// - Returns: `[SageMakerClientTypes.DeviceDeploymentSummary]` extension PaginatorSequence where Input == ListStageDevicesInput, Output == ListStageDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStageDevicesPaginated` + /// to access the nested member `[SageMakerClientTypes.DeviceDeploymentSummary]` + /// - Returns: `[SageMakerClientTypes.DeviceDeploymentSummary]` public func deviceDeploymentSummaries() async throws -> [SageMakerClientTypes.DeviceDeploymentSummary] { return try await self.asyncCompactMap { item in item.deviceDeploymentSummaries } } } - -/// Paginate over `[ListStudioLifecycleConfigsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListStudioLifecycleConfigsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListStudioLifecycleConfigsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListStudioLifecycleConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListStudioLifecycleConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListStudioLifecycleConfigsOutputResponse` public func listStudioLifecycleConfigsPaginated(input: ListStudioLifecycleConfigsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListStudioLifecycleConfigsInput.nextToken, outputKey: \ListStudioLifecycleConfigsOutputResponse.nextToken, paginationFunction: self.listStudioLifecycleConfigs(input:)) } @@ -2091,24 +2034,23 @@ extension ListStudioLifecycleConfigsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listStudioLifecycleConfigsPaginated` -/// to access the nested member `[SageMakerClientTypes.StudioLifecycleConfigDetails]` -/// - Returns: `[SageMakerClientTypes.StudioLifecycleConfigDetails]` extension PaginatorSequence where Input == ListStudioLifecycleConfigsInput, Output == ListStudioLifecycleConfigsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listStudioLifecycleConfigsPaginated` + /// to access the nested member `[SageMakerClientTypes.StudioLifecycleConfigDetails]` + /// - Returns: `[SageMakerClientTypes.StudioLifecycleConfigDetails]` public func studioLifecycleConfigs() async throws -> [SageMakerClientTypes.StudioLifecycleConfigDetails] { return try await self.asyncCompactMap { item in item.studioLifecycleConfigs } } } - -/// Paginate over `[ListSubscribedWorkteamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSubscribedWorkteamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSubscribedWorkteamsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListSubscribedWorkteamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSubscribedWorkteamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSubscribedWorkteamsOutputResponse` public func listSubscribedWorkteamsPaginated(input: ListSubscribedWorkteamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSubscribedWorkteamsInput.nextToken, outputKey: \ListSubscribedWorkteamsOutputResponse.nextToken, paginationFunction: self.listSubscribedWorkteams(input:)) } @@ -2123,24 +2065,23 @@ extension ListSubscribedWorkteamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSubscribedWorkteamsPaginated` -/// to access the nested member `[SageMakerClientTypes.SubscribedWorkteam]` -/// - Returns: `[SageMakerClientTypes.SubscribedWorkteam]` extension PaginatorSequence where Input == ListSubscribedWorkteamsInput, Output == ListSubscribedWorkteamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSubscribedWorkteamsPaginated` + /// to access the nested member `[SageMakerClientTypes.SubscribedWorkteam]` + /// - Returns: `[SageMakerClientTypes.SubscribedWorkteam]` public func subscribedWorkteams() async throws -> [SageMakerClientTypes.SubscribedWorkteam] { return try await self.asyncCompactMap { item in item.subscribedWorkteams } } } - -/// Paginate over `[ListTagsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTagsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsOutputResponse` public func listTagsPaginated(input: ListTagsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsInput.nextToken, outputKey: \ListTagsOutputResponse.nextToken, paginationFunction: self.listTags(input:)) } @@ -2155,24 +2096,23 @@ extension ListTagsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` -/// to access the nested member `[SageMakerClientTypes.Tag]` -/// - Returns: `[SageMakerClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsInput, Output == ListTagsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsPaginated` + /// to access the nested member `[SageMakerClientTypes.Tag]` + /// - Returns: `[SageMakerClientTypes.Tag]` public func tags() async throws -> [SageMakerClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListTrainingJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrainingJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrainingJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTrainingJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrainingJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrainingJobsOutputResponse` public func listTrainingJobsPaginated(input: ListTrainingJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrainingJobsInput.nextToken, outputKey: \ListTrainingJobsOutputResponse.nextToken, paginationFunction: self.listTrainingJobs(input:)) } @@ -2195,24 +2135,23 @@ extension ListTrainingJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrainingJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.TrainingJobSummary]` -/// - Returns: `[SageMakerClientTypes.TrainingJobSummary]` extension PaginatorSequence where Input == ListTrainingJobsInput, Output == ListTrainingJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrainingJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.TrainingJobSummary]` + /// - Returns: `[SageMakerClientTypes.TrainingJobSummary]` public func trainingJobSummaries() async throws -> [SageMakerClientTypes.TrainingJobSummary] { return try await self.asyncCompactMap { item in item.trainingJobSummaries } } } - -/// Paginate over `[ListTrainingJobsForHyperParameterTuningJobOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrainingJobsForHyperParameterTuningJobInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrainingJobsForHyperParameterTuningJobOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTrainingJobsForHyperParameterTuningJobOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrainingJobsForHyperParameterTuningJobInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrainingJobsForHyperParameterTuningJobOutputResponse` public func listTrainingJobsForHyperParameterTuningJobPaginated(input: ListTrainingJobsForHyperParameterTuningJobInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrainingJobsForHyperParameterTuningJobInput.nextToken, outputKey: \ListTrainingJobsForHyperParameterTuningJobOutputResponse.nextToken, paginationFunction: self.listTrainingJobsForHyperParameterTuningJob(input:)) } @@ -2230,24 +2169,23 @@ extension ListTrainingJobsForHyperParameterTuningJobInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrainingJobsForHyperParameterTuningJobPaginated` -/// to access the nested member `[SageMakerClientTypes.HyperParameterTrainingJobSummary]` -/// - Returns: `[SageMakerClientTypes.HyperParameterTrainingJobSummary]` extension PaginatorSequence where Input == ListTrainingJobsForHyperParameterTuningJobInput, Output == ListTrainingJobsForHyperParameterTuningJobOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrainingJobsForHyperParameterTuningJobPaginated` + /// to access the nested member `[SageMakerClientTypes.HyperParameterTrainingJobSummary]` + /// - Returns: `[SageMakerClientTypes.HyperParameterTrainingJobSummary]` public func trainingJobSummaries() async throws -> [SageMakerClientTypes.HyperParameterTrainingJobSummary] { return try await self.asyncCompactMap { item in item.trainingJobSummaries } } } - -/// Paginate over `[ListTransformJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTransformJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTransformJobsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTransformJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTransformJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTransformJobsOutputResponse` public func listTransformJobsPaginated(input: ListTransformJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTransformJobsInput.nextToken, outputKey: \ListTransformJobsOutputResponse.nextToken, paginationFunction: self.listTransformJobs(input:)) } @@ -2269,24 +2207,23 @@ extension ListTransformJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTransformJobsPaginated` -/// to access the nested member `[SageMakerClientTypes.TransformJobSummary]` -/// - Returns: `[SageMakerClientTypes.TransformJobSummary]` extension PaginatorSequence where Input == ListTransformJobsInput, Output == ListTransformJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTransformJobsPaginated` + /// to access the nested member `[SageMakerClientTypes.TransformJobSummary]` + /// - Returns: `[SageMakerClientTypes.TransformJobSummary]` public func transformJobSummaries() async throws -> [SageMakerClientTypes.TransformJobSummary] { return try await self.asyncCompactMap { item in item.transformJobSummaries } } } - -/// Paginate over `[ListTrialComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrialComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrialComponentsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTrialComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrialComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrialComponentsOutputResponse` public func listTrialComponentsPaginated(input: ListTrialComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrialComponentsInput.nextToken, outputKey: \ListTrialComponentsOutputResponse.nextToken, paginationFunction: self.listTrialComponents(input:)) } @@ -2307,24 +2244,23 @@ extension ListTrialComponentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrialComponentsPaginated` -/// to access the nested member `[SageMakerClientTypes.TrialComponentSummary]` -/// - Returns: `[SageMakerClientTypes.TrialComponentSummary]` extension PaginatorSequence where Input == ListTrialComponentsInput, Output == ListTrialComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrialComponentsPaginated` + /// to access the nested member `[SageMakerClientTypes.TrialComponentSummary]` + /// - Returns: `[SageMakerClientTypes.TrialComponentSummary]` public func trialComponentSummaries() async throws -> [SageMakerClientTypes.TrialComponentSummary] { return try await self.asyncCompactMap { item in item.trialComponentSummaries } } } - -/// Paginate over `[ListTrialsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrialsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrialsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListTrialsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrialsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrialsOutputResponse` public func listTrialsPaginated(input: ListTrialsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrialsInput.nextToken, outputKey: \ListTrialsOutputResponse.nextToken, paginationFunction: self.listTrials(input:)) } @@ -2344,24 +2280,23 @@ extension ListTrialsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTrialsPaginated` -/// to access the nested member `[SageMakerClientTypes.TrialSummary]` -/// - Returns: `[SageMakerClientTypes.TrialSummary]` extension PaginatorSequence where Input == ListTrialsInput, Output == ListTrialsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTrialsPaginated` + /// to access the nested member `[SageMakerClientTypes.TrialSummary]` + /// - Returns: `[SageMakerClientTypes.TrialSummary]` public func trialSummaries() async throws -> [SageMakerClientTypes.TrialSummary] { return try await self.asyncCompactMap { item in item.trialSummaries } } } - -/// Paginate over `[ListUserProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserProfilesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListUserProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserProfilesOutputResponse` public func listUserProfilesPaginated(input: ListUserProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserProfilesInput.nextToken, outputKey: \ListUserProfilesOutputResponse.nextToken, paginationFunction: self.listUserProfiles(input:)) } @@ -2379,24 +2314,23 @@ extension ListUserProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUserProfilesPaginated` -/// to access the nested member `[SageMakerClientTypes.UserProfileDetails]` -/// - Returns: `[SageMakerClientTypes.UserProfileDetails]` extension PaginatorSequence where Input == ListUserProfilesInput, Output == ListUserProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUserProfilesPaginated` + /// to access the nested member `[SageMakerClientTypes.UserProfileDetails]` + /// - Returns: `[SageMakerClientTypes.UserProfileDetails]` public func userProfiles() async throws -> [SageMakerClientTypes.UserProfileDetails] { return try await self.asyncCompactMap { item in item.userProfiles } } } - -/// Paginate over `[ListWorkforcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkforcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkforcesOutputResponse` extension SageMakerClient { + /// Paginate over `[ListWorkforcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkforcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkforcesOutputResponse` public func listWorkforcesPaginated(input: ListWorkforcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkforcesInput.nextToken, outputKey: \ListWorkforcesOutputResponse.nextToken, paginationFunction: self.listWorkforces(input:)) } @@ -2413,24 +2347,23 @@ extension ListWorkforcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkforcesPaginated` -/// to access the nested member `[SageMakerClientTypes.Workforce]` -/// - Returns: `[SageMakerClientTypes.Workforce]` extension PaginatorSequence where Input == ListWorkforcesInput, Output == ListWorkforcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkforcesPaginated` + /// to access the nested member `[SageMakerClientTypes.Workforce]` + /// - Returns: `[SageMakerClientTypes.Workforce]` public func workforces() async throws -> [SageMakerClientTypes.Workforce] { return try await self.asyncCompactMap { item in item.workforces } } } - -/// Paginate over `[ListWorkteamsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkteamsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkteamsOutputResponse` extension SageMakerClient { + /// Paginate over `[ListWorkteamsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkteamsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkteamsOutputResponse` public func listWorkteamsPaginated(input: ListWorkteamsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkteamsInput.nextToken, outputKey: \ListWorkteamsOutputResponse.nextToken, paginationFunction: self.listWorkteams(input:)) } @@ -2447,24 +2380,23 @@ extension ListWorkteamsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkteamsPaginated` -/// to access the nested member `[SageMakerClientTypes.Workteam]` -/// - Returns: `[SageMakerClientTypes.Workteam]` extension PaginatorSequence where Input == ListWorkteamsInput, Output == ListWorkteamsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkteamsPaginated` + /// to access the nested member `[SageMakerClientTypes.Workteam]` + /// - Returns: `[SageMakerClientTypes.Workteam]` public func workteams() async throws -> [SageMakerClientTypes.Workteam] { return try await self.asyncCompactMap { item in item.workteams } } } - -/// Paginate over `[QueryLineageOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[QueryLineageInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `QueryLineageOutputResponse` extension SageMakerClient { + /// Paginate over `[QueryLineageOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[QueryLineageInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `QueryLineageOutputResponse` public func queryLineagePaginated(input: QueryLineageInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \QueryLineageInput.nextToken, outputKey: \QueryLineageOutputResponse.nextToken, paginationFunction: self.queryLineage(input:)) } @@ -2482,16 +2414,15 @@ extension QueryLineageInput: ClientRuntime.PaginateToken { startArns: self.startArns )} } - -/// Paginate over `[SearchOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchOutputResponse` extension SageMakerClient { + /// Paginate over `[SearchOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchOutputResponse` public func searchPaginated(input: SearchInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchInput.nextToken, outputKey: \SearchOutputResponse.nextToken, paginationFunction: self.search(input:)) } @@ -2509,10 +2440,10 @@ extension SearchInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchPaginated` -/// to access the nested member `[SageMakerClientTypes.SearchRecord]` -/// - Returns: `[SageMakerClientTypes.SearchRecord]` extension PaginatorSequence where Input == SearchInput, Output == SearchOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchPaginated` + /// to access the nested member `[SageMakerClientTypes.SearchRecord]` + /// - Returns: `[SageMakerClientTypes.SearchRecord]` public func results() async throws -> [SageMakerClientTypes.SearchRecord] { return try await self.asyncCompactMap { item in item.results } } diff --git a/Sources/Services/AWSSageMakerA2IRuntime/Paginators.swift b/Sources/Services/AWSSageMakerA2IRuntime/Paginators.swift index 1393f05b538..2fb4c19d091 100644 --- a/Sources/Services/AWSSageMakerA2IRuntime/Paginators.swift +++ b/Sources/Services/AWSSageMakerA2IRuntime/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListHumanLoopsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListHumanLoopsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListHumanLoopsOutputResponse` extension SageMakerA2IRuntimeClient { + /// Paginate over `[ListHumanLoopsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListHumanLoopsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHumanLoopsOutputResponse` public func listHumanLoopsPaginated(input: ListHumanLoopsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListHumanLoopsInput.nextToken, outputKey: \ListHumanLoopsOutputResponse.nextToken, paginationFunction: self.listHumanLoops(input:)) } @@ -29,10 +28,10 @@ extension ListHumanLoopsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listHumanLoopsPaginated` -/// to access the nested member `[SageMakerA2IRuntimeClientTypes.HumanLoopSummary]` -/// - Returns: `[SageMakerA2IRuntimeClientTypes.HumanLoopSummary]` extension PaginatorSequence where Input == ListHumanLoopsInput, Output == ListHumanLoopsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listHumanLoopsPaginated` + /// to access the nested member `[SageMakerA2IRuntimeClientTypes.HumanLoopSummary]` + /// - Returns: `[SageMakerA2IRuntimeClientTypes.HumanLoopSummary]` public func humanLoopSummaries() async throws -> [SageMakerA2IRuntimeClientTypes.HumanLoopSummary] { return try await self.asyncCompactMap { item in item.humanLoopSummaries } } diff --git a/Sources/Services/AWSSavingsplans/EndpointResolver.swift b/Sources/Services/AWSSavingsplans/EndpointResolver.swift index e00c5568bca..f67b8c05d25 100644 --- a/Sources/Services/AWSSavingsplans/EndpointResolver.swift +++ b/Sources/Services/AWSSavingsplans/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"savingsplans\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"savingsplans\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"savingsplans\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"savingsplans\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://savingsplans.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"savingsplans\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"savingsplans\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"savingsplans\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"savingsplans\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"savingsplans\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://savingsplans.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"savingsplans\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://savingsplans.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSSchemas/Paginators.swift b/Sources/Services/AWSSchemas/Paginators.swift index d732816e7dd..f686197b0c1 100644 --- a/Sources/Services/AWSSchemas/Paginators.swift +++ b/Sources/Services/AWSSchemas/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDiscoverersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDiscoverersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDiscoverersOutputResponse` extension SchemasClient { + /// Paginate over `[ListDiscoverersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDiscoverersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDiscoverersOutputResponse` public func listDiscoverersPaginated(input: ListDiscoverersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDiscoverersInput.nextToken, outputKey: \ListDiscoverersOutputResponse.nextToken, paginationFunction: self.listDiscoverers(input:)) } @@ -27,24 +26,23 @@ extension ListDiscoverersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDiscoverersPaginated` -/// to access the nested member `[SchemasClientTypes.DiscovererSummary]` -/// - Returns: `[SchemasClientTypes.DiscovererSummary]` extension PaginatorSequence where Input == ListDiscoverersInput, Output == ListDiscoverersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDiscoverersPaginated` + /// to access the nested member `[SchemasClientTypes.DiscovererSummary]` + /// - Returns: `[SchemasClientTypes.DiscovererSummary]` public func discoverers() async throws -> [SchemasClientTypes.DiscovererSummary] { return try await self.asyncCompactMap { item in item.discoverers } } } - -/// Paginate over `[ListRegistriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRegistriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRegistriesOutputResponse` extension SchemasClient { + /// Paginate over `[ListRegistriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRegistriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRegistriesOutputResponse` public func listRegistriesPaginated(input: ListRegistriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRegistriesInput.nextToken, outputKey: \ListRegistriesOutputResponse.nextToken, paginationFunction: self.listRegistries(input:)) } @@ -60,24 +58,23 @@ extension ListRegistriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listRegistriesPaginated` -/// to access the nested member `[SchemasClientTypes.RegistrySummary]` -/// - Returns: `[SchemasClientTypes.RegistrySummary]` extension PaginatorSequence where Input == ListRegistriesInput, Output == ListRegistriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRegistriesPaginated` + /// to access the nested member `[SchemasClientTypes.RegistrySummary]` + /// - Returns: `[SchemasClientTypes.RegistrySummary]` public func registries() async throws -> [SchemasClientTypes.RegistrySummary] { return try await self.asyncCompactMap { item in item.registries } } } - -/// Paginate over `[ListSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` extension SchemasClient { + /// Paginate over `[ListSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemasOutputResponse` public func listSchemasPaginated(input: ListSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemasInput.nextToken, outputKey: \ListSchemasOutputResponse.nextToken, paginationFunction: self.listSchemas(input:)) } @@ -93,24 +90,23 @@ extension ListSchemasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` -/// to access the nested member `[SchemasClientTypes.SchemaSummary]` -/// - Returns: `[SchemasClientTypes.SchemaSummary]` extension PaginatorSequence where Input == ListSchemasInput, Output == ListSchemasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemasPaginated` + /// to access the nested member `[SchemasClientTypes.SchemaSummary]` + /// - Returns: `[SchemasClientTypes.SchemaSummary]` public func schemas() async throws -> [SchemasClientTypes.SchemaSummary] { return try await self.asyncCompactMap { item in item.schemas } } } - -/// Paginate over `[ListSchemaVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSchemaVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSchemaVersionsOutputResponse` extension SchemasClient { + /// Paginate over `[ListSchemaVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSchemaVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSchemaVersionsOutputResponse` public func listSchemaVersionsPaginated(input: ListSchemaVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSchemaVersionsInput.nextToken, outputKey: \ListSchemaVersionsOutputResponse.nextToken, paginationFunction: self.listSchemaVersions(input:)) } @@ -126,24 +122,23 @@ extension ListSchemaVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSchemaVersionsPaginated` -/// to access the nested member `[SchemasClientTypes.SchemaVersionSummary]` -/// - Returns: `[SchemasClientTypes.SchemaVersionSummary]` extension PaginatorSequence where Input == ListSchemaVersionsInput, Output == ListSchemaVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSchemaVersionsPaginated` + /// to access the nested member `[SchemasClientTypes.SchemaVersionSummary]` + /// - Returns: `[SchemasClientTypes.SchemaVersionSummary]` public func schemaVersions() async throws -> [SchemasClientTypes.SchemaVersionSummary] { return try await self.asyncCompactMap { item in item.schemaVersions } } } - -/// Paginate over `[SearchSchemasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchSchemasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchSchemasOutputResponse` extension SchemasClient { + /// Paginate over `[SearchSchemasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchSchemasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchSchemasOutputResponse` public func searchSchemasPaginated(input: SearchSchemasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchSchemasInput.nextToken, outputKey: \SearchSchemasOutputResponse.nextToken, paginationFunction: self.searchSchemas(input:)) } @@ -159,10 +154,10 @@ extension SearchSchemasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `searchSchemasPaginated` -/// to access the nested member `[SchemasClientTypes.SearchSchemaSummary]` -/// - Returns: `[SchemasClientTypes.SearchSchemaSummary]` extension PaginatorSequence where Input == SearchSchemasInput, Output == SearchSchemasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `searchSchemasPaginated` + /// to access the nested member `[SchemasClientTypes.SearchSchemaSummary]` + /// - Returns: `[SchemasClientTypes.SearchSchemaSummary]` public func schemas() async throws -> [SchemasClientTypes.SearchSchemaSummary] { return try await self.asyncCompactMap { item in item.schemas } } diff --git a/Sources/Services/AWSSecretsManager/Paginators.swift b/Sources/Services/AWSSecretsManager/Paginators.swift index 55506ceb4a3..f244ee7c9b0 100644 --- a/Sources/Services/AWSSecretsManager/Paginators.swift +++ b/Sources/Services/AWSSecretsManager/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSecretsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecretsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecretsOutputResponse` extension SecretsManagerClient { + /// Paginate over `[ListSecretsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecretsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecretsOutputResponse` public func listSecretsPaginated(input: ListSecretsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecretsInput.nextToken, outputKey: \ListSecretsOutputResponse.nextToken, paginationFunction: self.listSecrets(input:)) } @@ -27,16 +26,15 @@ extension ListSecretsInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[ListSecretVersionIdsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecretVersionIdsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecretVersionIdsOutputResponse` extension SecretsManagerClient { + /// Paginate over `[ListSecretVersionIdsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecretVersionIdsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecretVersionIdsOutputResponse` public func listSecretVersionIdsPaginated(input: ListSecretVersionIdsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecretVersionIdsInput.nextToken, outputKey: \ListSecretVersionIdsOutputResponse.nextToken, paginationFunction: self.listSecretVersionIds(input:)) } diff --git a/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift b/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift index 34362f1decb..f61e9652f56 100644 --- a/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift +++ b/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift @@ -244,7 +244,7 @@ extension SecretsManagerClient: SecretsManagerClientProtocol { return result } - /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. + /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For secrets that use managed rotation, you need to create the secret through the managing service. For more information, see [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. public func createSecret(input: CreateSecretInput) async throws -> CreateSecretOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -806,7 +806,7 @@ extension SecretsManagerClient: SecretsManagerClientProtocol { return result } - /// Configures and starts the asynchronous process of rotating the secret. For more information about rotation, see [Rotate secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html). If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the secret value is in the [ JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). In particular, if you want to use the [ alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users), your secret must contain the ARN of a superuser secret. To configure rotation, you also need the ARN of an Amazon Web Services Lambda function and the schedule for the rotation. The Lambda rotation function creates a new version of the secret and creates or updates the credentials on the database or service to match. After testing the new credentials, the function marks the new secret version with the staging label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more information, see [How rotation works](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html). You can create the Lambda rotation function based on the [rotation function templates](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html) that Secrets Manager provides. Choose a template that matches your [Rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html). When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error. When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see [Troubleshoot rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html) in the Secrets Manager User Guide. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:RotateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). You also need lambda:InvokeFunction permissions on the rotation function. For more information, see [ Permissions for rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html). + /// Configures and starts the asynchronous process of rotating the secret. For information about rotation, see [Rotate secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) in the Secrets Manager User Guide. If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret. When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error. When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see [Troubleshoot rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html) in the Secrets Manager User Guide. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:RotateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). You also need lambda:InvokeFunction permissions on the rotation function. For more information, see [ Permissions for rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html). public func rotateSecret(input: RotateSecretInput) async throws -> RotateSecretOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -985,7 +985,7 @@ extension SecretsManagerClient: SecretsManagerClientProtocol { return result } - /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). + /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. To change a secret so that it is managed by another service, you need to recreate the secret in that service. See [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). public func updateSecret(input: UpdateSecretInput) async throws -> UpdateSecretOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift b/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift index 94c6d0c1af0..03b63b19932 100644 --- a/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift +++ b/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift @@ -3,11 +3,11 @@ import AWSClientRuntime import ClientRuntime -/// Amazon Web Services Secrets Manager Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets. This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the [Amazon Web Services Secrets Manager User Guide](https://docs.aws.amazon.com/secretsmanager/latest/userguide/introduction.html). API Version This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17. Support and Feedback for Amazon Web Services Secrets Manager We welcome your feedback. Send your comments to [awssecretsmanager-feedback@amazon.com](mailto:awssecretsmanager-feedback@amazon.com), or post your feedback and questions in the [Amazon Web Services Secrets Manager Discussion Forum](http://forums.aws.amazon.com/forum.jspa?forumID=296). For more information about the Amazon Web Services Discussion Forums, see [Forums Help](http://forums.aws.amazon.com/help.jspa). Logging API Requests Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services CloudTrail, see [Logging Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail) in the Amazon Web Services Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see the [Amazon Web Services CloudTrail User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). +/// Amazon Web Services Secrets Manager Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets. This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the [Amazon Web Services Secrets Manager User Guide](https://docs.aws.amazon.com/secretsmanager/latest/userguide/introduction.html). API Version This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17. For a list of endpoints, see [Amazon Web Services Secrets Manager endpoints](https://docs.aws.amazon.com/secretsmanager/latest/userguide/asm_access.html#endpoints). Support and Feedback for Amazon Web Services Secrets Manager We welcome your feedback. Send your comments to [awssecretsmanager-feedback@amazon.com](mailto:awssecretsmanager-feedback@amazon.com), or post your feedback and questions in the [Amazon Web Services Secrets Manager Discussion Forum](http://forums.aws.amazon.com/forum.jspa?forumID=296). For more information about the Amazon Web Services Discussion Forums, see [Forums Help](http://forums.aws.amazon.com/help.jspa). Logging API Requests Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services CloudTrail, see [Logging Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail) in the Amazon Web Services Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see the [Amazon Web Services CloudTrail User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). public protocol SecretsManagerClientProtocol { /// Turns off automatic rotation, and if a rotation is currently in progress, cancels the rotation. If you cancel a rotation in progress, it can leave the VersionStage labels in an unexpected state. You might need to remove the staging label AWSPENDING from the partially created version. You also need to determine whether to roll back to the previous version of the secret by moving the staging label AWSCURRENT to the version that has AWSPENDING. To determine which version has a specific staging label, call [ListSecretVersionIds]. Then use [UpdateSecretVersionStage] to change staging labels. For more information, see [How rotation works](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html). To turn on automatic rotation again, call [RotateSecret]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CancelRotateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func cancelRotateSecret(input: CancelRotateSecretInput) async throws -> CancelRotateSecretOutputResponse - /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. + /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For secrets that use managed rotation, you need to create the secret through the managing service. For more information, see [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. func createSecret(input: CreateSecretInput) async throws -> CreateSecretOutputResponse /// Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use [PutResourcePolicy]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:DeleteResourcePolicy. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func deleteResourcePolicy(input: DeleteResourcePolicyInput) async throws -> DeleteResourcePolicyOutputResponse @@ -35,7 +35,7 @@ public protocol SecretsManagerClientProtocol { func replicateSecretToRegions(input: ReplicateSecretToRegionsInput) async throws -> ReplicateSecretToRegionsOutputResponse /// Cancels the scheduled deletion of a secret by removing the DeletedDate time stamp. You can access a secret again after it has been restored. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:RestoreSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func restoreSecret(input: RestoreSecretInput) async throws -> RestoreSecretOutputResponse - /// Configures and starts the asynchronous process of rotating the secret. For more information about rotation, see [Rotate secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html). If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the secret value is in the [ JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). In particular, if you want to use the [ alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users), your secret must contain the ARN of a superuser secret. To configure rotation, you also need the ARN of an Amazon Web Services Lambda function and the schedule for the rotation. The Lambda rotation function creates a new version of the secret and creates or updates the credentials on the database or service to match. After testing the new credentials, the function marks the new secret version with the staging label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more information, see [How rotation works](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html). You can create the Lambda rotation function based on the [rotation function templates](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html) that Secrets Manager provides. Choose a template that matches your [Rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html). When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error. When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see [Troubleshoot rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html) in the Secrets Manager User Guide. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:RotateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). You also need lambda:InvokeFunction permissions on the rotation function. For more information, see [ Permissions for rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html). + /// Configures and starts the asynchronous process of rotating the secret. For information about rotation, see [Rotate secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) in the Secrets Manager User Guide. If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret. When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error. When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see [Troubleshoot rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html) in the Secrets Manager User Guide. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:RotateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). You also need lambda:InvokeFunction permissions on the rotation function. For more information, see [ Permissions for rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html). func rotateSecret(input: RotateSecretInput) async throws -> RotateSecretOutputResponse /// Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region. You must call this operation from the Region in which you want to promote the replica to a primary secret. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:StopReplicationToReplica. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func stopReplicationToReplica(input: StopReplicationToReplicaInput) async throws -> StopReplicationToReplicaOutputResponse @@ -58,7 +58,7 @@ public protocol SecretsManagerClientProtocol { func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse /// Removes specific tags from a secret. This operation is idempotent. If a requested tag is not attached to the secret, no error is returned and the secret metadata is unchanged. If you use tags as part of your security strategy, then removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UntagResource. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutputResponse - /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). + /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. To change a secret so that it is managed by another service, you need to recreate the secret in that service. See [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). func updateSecret(input: UpdateSecretInput) async throws -> UpdateSecretOutputResponse /// Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to track a version as it progresses through the secret rotation process. Each staging label can be attached to only one version at a time. To add a staging label to a version when it is already attached to another version, Secrets Manager first removes it from the other version first and then attaches it to this one. For more information about versions and staging labels, see [Concepts: Version](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version). The staging labels that you specify in the VersionStage parameter are added to the existing list of staging labels for the version. You can move the AWSCURRENT staging label to this version by including it in this call. Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If this action results in the last label being removed from a version, then the version is considered to be 'deprecated' and can be deleted by Secrets Manager. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecretVersionStage. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). func updateSecretVersionStage(input: UpdateSecretVersionStageInput) async throws -> UpdateSecretVersionStageOutputResponse diff --git a/Sources/Services/AWSSecretsManager/models/Models.swift b/Sources/Services/AWSSecretsManager/models/Models.swift index f1f628f0fa1..b3f6cad8d4f 100644 --- a/Sources/Services/AWSSecretsManager/models/Models.swift +++ b/Sources/Services/AWSSecretsManager/models/Models.swift @@ -939,6 +939,7 @@ public struct DescribeSecretOutputResponse: Swift.Equatable { public var lastRotatedDate: ClientRuntime.Date? /// The name of the secret. public var name: Swift.String? + /// The next date and time that Secrets Manager will rotate the secret, rounded to the nearest hour. If the secret isn't configured for rotation, Secrets Manager returns null. public var nextRotationDate: ClientRuntime.Date? /// The ID of the service that created this secret. For more information, see [Secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). public var owningService: Swift.String? @@ -1236,6 +1237,8 @@ extension SecretsManagerClientTypes { /// /// * primary-region: Prefix match, case-sensitive. /// + /// * owning-service: Prefix match, case-sensitive. + /// /// * all: Breaks the filter value string into words and then searches all attributes for matches. Not case-sensitive. public var key: SecretsManagerClientTypes.FilterNameStringType? /// The keyword to filter for. You can prefix your search value with an exclamation mark (!) in order to perform negation filters. @@ -2356,6 +2359,7 @@ extension ListSecretsInput: ClientRuntime.URLPathProvider { public struct ListSecretsInput: Swift.Equatable { /// The filters to apply to the list of secrets. public var filters: [SecretsManagerClientTypes.Filter]? + /// Specifies whether to include secrets scheduled for deletion. public var includePlannedDeletion: Swift.Bool? /// The number of results to include in the response. If there are more results available, in the response, Secrets Manager includes NextToken. To get the next results, call ListSecrets again with the value from NextToken. public var maxResults: Swift.Int? @@ -3780,9 +3784,9 @@ extension RotateSecretInput: ClientRuntime.URLPathProvider { public struct RotateSecretInput: Swift.Equatable { /// A unique identifier for the new version of the secret that helps ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if there are failures and retries during rotation. This value becomes the VersionId of the new version. If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself for new versions and include that value in the request. You only need to specify this value if you implement your own retry logic and you want to ensure that Secrets Manager doesn't attempt to create a secret version twice. We recommend that you generate a [UUID-type](https://wikipedia.org/wiki/Universally_unique_identifier) value to ensure uniqueness within the specified secret. public var clientRequestToken: Swift.String? - /// Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. The rotation schedule is defined in [RotateSecretRequest$RotationRules]. If you don't immediately rotate the secret, Secrets Manager tests the rotation configuration by running the [testSecret] step(https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html) of the Lambda rotation function. The test creates an AWSPENDING version of the secret and then removes it. If you don't specify this value, then by default, Secrets Manager rotates the secret immediately. + /// Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. The rotation schedule is defined in [RotateSecretRequest$RotationRules]. For secrets that use a Lambda rotation function to rotate, if you don't immediately rotate the secret, Secrets Manager tests the rotation configuration by running the [testSecret] step(https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_how.html) of the Lambda rotation function. The test creates an AWSPENDING version of the secret and then removes it. If you don't specify this value, then by default, Secrets Manager rotates the secret immediately. public var rotateImmediately: Swift.Bool? - /// The ARN of the Lambda rotation function that can rotate the secret. + /// For secrets that use a Lambda rotation function to rotate, the ARN of the Lambda rotation function. For secrets that use managed rotation, omit this field. For more information, see [Managed rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_managed.html) in the Secrets Manager User Guide. public var rotationLambdaARN: Swift.String? /// A structure that defines the rotation configuration for this secret. public var rotationRules: SecretsManagerClientTypes.RotationRulesType? @@ -3961,7 +3965,7 @@ extension SecretsManagerClientTypes.RotationRulesType: Swift.Codable { extension SecretsManagerClientTypes { /// A structure that defines the rotation configuration for the secret. public struct RotationRulesType: Swift.Equatable { - /// The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both. To set a rotation schedule in hours, use ScheduleExpression. + /// The number of days between rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. If you use this field to set the rotation schedule, Secrets Manager calculates the next rotation date based on the previous rotation. Manually updating the secret value by calling PutSecretValue or UpdateSecret is considered a valid rotation. In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both. To set a rotation schedule in hours, use ScheduleExpression. public var automaticallyAfterDays: Swift.Int? /// The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. For more information, including examples, see [Schedule expressions in Secrets Manager rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_schedule.html) in the Secrets Manager Users Guide. public var duration: Swift.String? @@ -4152,6 +4156,7 @@ extension SecretsManagerClientTypes { public var lastRotatedDate: ClientRuntime.Date? /// The friendly name of the secret. You can use forward slashes in the name to represent a path hierarchy. For example, /prod/databases/dbserver1 could represent the secret for a server named dbserver1 in the folder databases in the folder prod. public var name: Swift.String? + /// The next date and time that Secrets Manager will attempt to rotate the secret, rounded to the nearest hour. This value is null if the secret is not set up for rotation. public var nextRotationDate: ClientRuntime.Date? /// Returns the name of the service that created the secret. public var owningService: Swift.String? diff --git a/Sources/Services/AWSSecurityHub/Paginators.swift b/Sources/Services/AWSSecurityHub/Paginators.swift index d81d63e6871..ec0db32f7c7 100644 --- a/Sources/Services/AWSSecurityHub/Paginators.swift +++ b/Sources/Services/AWSSecurityHub/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeActionTargetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeActionTargetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeActionTargetsOutputResponse` extension SecurityHubClient { + /// Paginate over `[DescribeActionTargetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeActionTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeActionTargetsOutputResponse` public func describeActionTargetsPaginated(input: DescribeActionTargetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeActionTargetsInput.nextToken, outputKey: \DescribeActionTargetsOutputResponse.nextToken, paginationFunction: self.describeActionTargets(input:)) } @@ -26,24 +25,23 @@ extension DescribeActionTargetsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeActionTargetsPaginated` -/// to access the nested member `[SecurityHubClientTypes.ActionTarget]` -/// - Returns: `[SecurityHubClientTypes.ActionTarget]` extension PaginatorSequence where Input == DescribeActionTargetsInput, Output == DescribeActionTargetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeActionTargetsPaginated` + /// to access the nested member `[SecurityHubClientTypes.ActionTarget]` + /// - Returns: `[SecurityHubClientTypes.ActionTarget]` public func actionTargets() async throws -> [SecurityHubClientTypes.ActionTarget] { return try await self.asyncCompactMap { item in item.actionTargets } } } - -/// Paginate over `[DescribeProductsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeProductsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeProductsOutputResponse` extension SecurityHubClient { + /// Paginate over `[DescribeProductsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeProductsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeProductsOutputResponse` public func describeProductsPaginated(input: DescribeProductsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeProductsInput.nextToken, outputKey: \DescribeProductsOutputResponse.nextToken, paginationFunction: self.describeProducts(input:)) } @@ -58,24 +56,23 @@ extension DescribeProductsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeProductsPaginated` -/// to access the nested member `[SecurityHubClientTypes.Product]` -/// - Returns: `[SecurityHubClientTypes.Product]` extension PaginatorSequence where Input == DescribeProductsInput, Output == DescribeProductsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeProductsPaginated` + /// to access the nested member `[SecurityHubClientTypes.Product]` + /// - Returns: `[SecurityHubClientTypes.Product]` public func products() async throws -> [SecurityHubClientTypes.Product] { return try await self.asyncCompactMap { item in item.products } } } - -/// Paginate over `[DescribeStandardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStandardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStandardsOutputResponse` extension SecurityHubClient { + /// Paginate over `[DescribeStandardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStandardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStandardsOutputResponse` public func describeStandardsPaginated(input: DescribeStandardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStandardsInput.nextToken, outputKey: \DescribeStandardsOutputResponse.nextToken, paginationFunction: self.describeStandards(input:)) } @@ -89,24 +86,23 @@ extension DescribeStandardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStandardsPaginated` -/// to access the nested member `[SecurityHubClientTypes.Standard]` -/// - Returns: `[SecurityHubClientTypes.Standard]` extension PaginatorSequence where Input == DescribeStandardsInput, Output == DescribeStandardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStandardsPaginated` + /// to access the nested member `[SecurityHubClientTypes.Standard]` + /// - Returns: `[SecurityHubClientTypes.Standard]` public func standards() async throws -> [SecurityHubClientTypes.Standard] { return try await self.asyncCompactMap { item in item.standards } } } - -/// Paginate over `[DescribeStandardsControlsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeStandardsControlsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeStandardsControlsOutputResponse` extension SecurityHubClient { + /// Paginate over `[DescribeStandardsControlsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeStandardsControlsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeStandardsControlsOutputResponse` public func describeStandardsControlsPaginated(input: DescribeStandardsControlsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeStandardsControlsInput.nextToken, outputKey: \DescribeStandardsControlsOutputResponse.nextToken, paginationFunction: self.describeStandardsControls(input:)) } @@ -121,24 +117,23 @@ extension DescribeStandardsControlsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeStandardsControlsPaginated` -/// to access the nested member `[SecurityHubClientTypes.StandardsControl]` -/// - Returns: `[SecurityHubClientTypes.StandardsControl]` extension PaginatorSequence where Input == DescribeStandardsControlsInput, Output == DescribeStandardsControlsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeStandardsControlsPaginated` + /// to access the nested member `[SecurityHubClientTypes.StandardsControl]` + /// - Returns: `[SecurityHubClientTypes.StandardsControl]` public func controls() async throws -> [SecurityHubClientTypes.StandardsControl] { return try await self.asyncCompactMap { item in item.controls } } } - -/// Paginate over `[GetEnabledStandardsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetEnabledStandardsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetEnabledStandardsOutputResponse` extension SecurityHubClient { + /// Paginate over `[GetEnabledStandardsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetEnabledStandardsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetEnabledStandardsOutputResponse` public func getEnabledStandardsPaginated(input: GetEnabledStandardsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetEnabledStandardsInput.nextToken, outputKey: \GetEnabledStandardsOutputResponse.nextToken, paginationFunction: self.getEnabledStandards(input:)) } @@ -153,24 +148,23 @@ extension GetEnabledStandardsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getEnabledStandardsPaginated` -/// to access the nested member `[SecurityHubClientTypes.StandardsSubscription]` -/// - Returns: `[SecurityHubClientTypes.StandardsSubscription]` extension PaginatorSequence where Input == GetEnabledStandardsInput, Output == GetEnabledStandardsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getEnabledStandardsPaginated` + /// to access the nested member `[SecurityHubClientTypes.StandardsSubscription]` + /// - Returns: `[SecurityHubClientTypes.StandardsSubscription]` public func standardsSubscriptions() async throws -> [SecurityHubClientTypes.StandardsSubscription] { return try await self.asyncCompactMap { item in item.standardsSubscriptions } } } - -/// Paginate over `[GetFindingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetFindingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetFindingsOutputResponse` extension SecurityHubClient { + /// Paginate over `[GetFindingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetFindingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetFindingsOutputResponse` public func getFindingsPaginated(input: GetFindingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetFindingsInput.nextToken, outputKey: \GetFindingsOutputResponse.nextToken, paginationFunction: self.getFindings(input:)) } @@ -186,24 +180,23 @@ extension GetFindingsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getFindingsPaginated` -/// to access the nested member `[SecurityHubClientTypes.AwsSecurityFinding]` -/// - Returns: `[SecurityHubClientTypes.AwsSecurityFinding]` extension PaginatorSequence where Input == GetFindingsInput, Output == GetFindingsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getFindingsPaginated` + /// to access the nested member `[SecurityHubClientTypes.AwsSecurityFinding]` + /// - Returns: `[SecurityHubClientTypes.AwsSecurityFinding]` public func findings() async throws -> [SecurityHubClientTypes.AwsSecurityFinding] { return try await self.asyncCompactMap { item in item.findings } } } - -/// Paginate over `[GetInsightsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInsightsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInsightsOutputResponse` extension SecurityHubClient { + /// Paginate over `[GetInsightsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInsightsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInsightsOutputResponse` public func getInsightsPaginated(input: GetInsightsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInsightsInput.nextToken, outputKey: \GetInsightsOutputResponse.nextToken, paginationFunction: self.getInsights(input:)) } @@ -218,24 +211,23 @@ extension GetInsightsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getInsightsPaginated` -/// to access the nested member `[SecurityHubClientTypes.Insight]` -/// - Returns: `[SecurityHubClientTypes.Insight]` extension PaginatorSequence where Input == GetInsightsInput, Output == GetInsightsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getInsightsPaginated` + /// to access the nested member `[SecurityHubClientTypes.Insight]` + /// - Returns: `[SecurityHubClientTypes.Insight]` public func insights() async throws -> [SecurityHubClientTypes.Insight] { return try await self.asyncCompactMap { item in item.insights } } } - -/// Paginate over `[ListEnabledProductsForImportOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListEnabledProductsForImportInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListEnabledProductsForImportOutputResponse` extension SecurityHubClient { + /// Paginate over `[ListEnabledProductsForImportOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListEnabledProductsForImportInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEnabledProductsForImportOutputResponse` public func listEnabledProductsForImportPaginated(input: ListEnabledProductsForImportInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListEnabledProductsForImportInput.nextToken, outputKey: \ListEnabledProductsForImportOutputResponse.nextToken, paginationFunction: self.listEnabledProductsForImport(input:)) } @@ -249,24 +241,23 @@ extension ListEnabledProductsForImportInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listEnabledProductsForImportPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListEnabledProductsForImportInput, Output == ListEnabledProductsForImportOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listEnabledProductsForImportPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func productSubscriptions() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.productSubscriptions } } } - -/// Paginate over `[ListFindingAggregatorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFindingAggregatorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFindingAggregatorsOutputResponse` extension SecurityHubClient { + /// Paginate over `[ListFindingAggregatorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFindingAggregatorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFindingAggregatorsOutputResponse` public func listFindingAggregatorsPaginated(input: ListFindingAggregatorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFindingAggregatorsInput.nextToken, outputKey: \ListFindingAggregatorsOutputResponse.nextToken, paginationFunction: self.listFindingAggregators(input:)) } @@ -280,24 +271,23 @@ extension ListFindingAggregatorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFindingAggregatorsPaginated` -/// to access the nested member `[SecurityHubClientTypes.FindingAggregator]` -/// - Returns: `[SecurityHubClientTypes.FindingAggregator]` extension PaginatorSequence where Input == ListFindingAggregatorsInput, Output == ListFindingAggregatorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFindingAggregatorsPaginated` + /// to access the nested member `[SecurityHubClientTypes.FindingAggregator]` + /// - Returns: `[SecurityHubClientTypes.FindingAggregator]` public func findingAggregators() async throws -> [SecurityHubClientTypes.FindingAggregator] { return try await self.asyncCompactMap { item in item.findingAggregators } } } - -/// Paginate over `[ListInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` extension SecurityHubClient { + /// Paginate over `[ListInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInvitationsOutputResponse` public func listInvitationsPaginated(input: ListInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInvitationsInput.nextToken, outputKey: \ListInvitationsOutputResponse.nextToken, paginationFunction: self.listInvitations(input:)) } @@ -311,24 +301,23 @@ extension ListInvitationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` -/// to access the nested member `[SecurityHubClientTypes.Invitation]` -/// - Returns: `[SecurityHubClientTypes.Invitation]` extension PaginatorSequence where Input == ListInvitationsInput, Output == ListInvitationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listInvitationsPaginated` + /// to access the nested member `[SecurityHubClientTypes.Invitation]` + /// - Returns: `[SecurityHubClientTypes.Invitation]` public func invitations() async throws -> [SecurityHubClientTypes.Invitation] { return try await self.asyncCompactMap { item in item.invitations } } } - -/// Paginate over `[ListMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` extension SecurityHubClient { + /// Paginate over `[ListMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMembersOutputResponse` public func listMembersPaginated(input: ListMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMembersInput.nextToken, outputKey: \ListMembersOutputResponse.nextToken, paginationFunction: self.listMembers(input:)) } @@ -343,24 +332,23 @@ extension ListMembersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` -/// to access the nested member `[SecurityHubClientTypes.Member]` -/// - Returns: `[SecurityHubClientTypes.Member]` extension PaginatorSequence where Input == ListMembersInput, Output == ListMembersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listMembersPaginated` + /// to access the nested member `[SecurityHubClientTypes.Member]` + /// - Returns: `[SecurityHubClientTypes.Member]` public func members() async throws -> [SecurityHubClientTypes.Member] { return try await self.asyncCompactMap { item in item.members } } } - -/// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` extension SecurityHubClient { + /// Paginate over `[ListOrganizationAdminAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationAdminAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationAdminAccountsOutputResponse` public func listOrganizationAdminAccountsPaginated(input: ListOrganizationAdminAccountsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationAdminAccountsInput.nextToken, outputKey: \ListOrganizationAdminAccountsOutputResponse.nextToken, paginationFunction: self.listOrganizationAdminAccounts(input:)) } @@ -374,10 +362,10 @@ extension ListOrganizationAdminAccountsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` -/// to access the nested member `[SecurityHubClientTypes.AdminAccount]` -/// - Returns: `[SecurityHubClientTypes.AdminAccount]` extension PaginatorSequence where Input == ListOrganizationAdminAccountsInput, Output == ListOrganizationAdminAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOrganizationAdminAccountsPaginated` + /// to access the nested member `[SecurityHubClientTypes.AdminAccount]` + /// - Returns: `[SecurityHubClientTypes.AdminAccount]` public func adminAccounts() async throws -> [SecurityHubClientTypes.AdminAccount] { return try await self.asyncCompactMap { item in item.adminAccounts } } diff --git a/Sources/Services/AWSSecurityLake/Paginators.swift b/Sources/Services/AWSSecurityLake/Paginators.swift index 26a998147c2..1f842ec7660 100644 --- a/Sources/Services/AWSSecurityLake/Paginators.swift +++ b/Sources/Services/AWSSecurityLake/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetDatalakeStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetDatalakeStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetDatalakeStatusOutputResponse` extension SecurityLakeClient { + /// Paginate over `[GetDatalakeStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetDatalakeStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetDatalakeStatusOutputResponse` public func getDatalakeStatusPaginated(input: GetDatalakeStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetDatalakeStatusInput.nextToken, outputKey: \GetDatalakeStatusOutputResponse.nextToken, paginationFunction: self.getDatalakeStatus(input:)) } @@ -26,24 +25,23 @@ extension GetDatalakeStatusInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getDatalakeStatusPaginated` -/// to access the nested member `[SecurityLakeClientTypes.AccountSources]` -/// - Returns: `[SecurityLakeClientTypes.AccountSources]` extension PaginatorSequence where Input == GetDatalakeStatusInput, Output == GetDatalakeStatusOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getDatalakeStatusPaginated` + /// to access the nested member `[SecurityLakeClientTypes.AccountSources]` + /// - Returns: `[SecurityLakeClientTypes.AccountSources]` public func accountSourcesList() async throws -> [SecurityLakeClientTypes.AccountSources] { return try await self.asyncCompactMap { item in item.accountSourcesList } } } - -/// Paginate over `[ListDatalakeExceptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatalakeExceptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatalakeExceptionsOutputResponse` extension SecurityLakeClient { + /// Paginate over `[ListDatalakeExceptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatalakeExceptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatalakeExceptionsOutputResponse` public func listDatalakeExceptionsPaginated(input: ListDatalakeExceptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatalakeExceptionsInput.nextToken, outputKey: \ListDatalakeExceptionsOutputResponse.nextToken, paginationFunction: self.listDatalakeExceptions(input:)) } @@ -58,24 +56,23 @@ extension ListDatalakeExceptionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatalakeExceptionsPaginated` -/// to access the nested member `[SecurityLakeClientTypes.FailuresResponse]` -/// - Returns: `[SecurityLakeClientTypes.FailuresResponse]` extension PaginatorSequence where Input == ListDatalakeExceptionsInput, Output == ListDatalakeExceptionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatalakeExceptionsPaginated` + /// to access the nested member `[SecurityLakeClientTypes.FailuresResponse]` + /// - Returns: `[SecurityLakeClientTypes.FailuresResponse]` public func nonRetryableFailures() async throws -> [SecurityLakeClientTypes.FailuresResponse] { return try await self.asyncCompactMap { item in item.nonRetryableFailures } } } - -/// Paginate over `[ListLogSourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLogSourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLogSourcesOutputResponse` extension SecurityLakeClient { + /// Paginate over `[ListLogSourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLogSourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLogSourcesOutputResponse` public func listLogSourcesPaginated(input: ListLogSourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLogSourcesInput.nextToken, outputKey: \ListLogSourcesOutputResponse.nextToken, paginationFunction: self.listLogSources(input:)) } @@ -93,24 +90,23 @@ extension ListLogSourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLogSourcesPaginated` -/// to access the nested member `[[Swift.String:[Swift.String:[Swift.String]]]]` -/// - Returns: `[[Swift.String:[Swift.String:[Swift.String]]]]` extension PaginatorSequence where Input == ListLogSourcesInput, Output == ListLogSourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLogSourcesPaginated` + /// to access the nested member `[[Swift.String:[Swift.String:[Swift.String]]]]` + /// - Returns: `[[Swift.String:[Swift.String:[Swift.String]]]]` public func regionSourceTypesAccountsList() async throws -> [[Swift.String:[Swift.String:[Swift.String]]]] { return try await self.asyncCompactMap { item in item.regionSourceTypesAccountsList } } } - -/// Paginate over `[ListSubscribersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSubscribersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSubscribersOutputResponse` extension SecurityLakeClient { + /// Paginate over `[ListSubscribersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSubscribersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSubscribersOutputResponse` public func listSubscribersPaginated(input: ListSubscribersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSubscribersInput.nextToken, outputKey: \ListSubscribersOutputResponse.nextToken, paginationFunction: self.listSubscribers(input:)) } @@ -124,10 +120,10 @@ extension ListSubscribersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSubscribersPaginated` -/// to access the nested member `[SecurityLakeClientTypes.SubscriberResource]` -/// - Returns: `[SecurityLakeClientTypes.SubscriberResource]` extension PaginatorSequence where Input == ListSubscribersInput, Output == ListSubscribersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSubscribersPaginated` + /// to access the nested member `[SecurityLakeClientTypes.SubscriberResource]` + /// - Returns: `[SecurityLakeClientTypes.SubscriberResource]` public func subscribers() async throws -> [SecurityLakeClientTypes.SubscriberResource] { return try await self.asyncCompactMap { item in item.subscribers } } diff --git a/Sources/Services/AWSServerlessApplicationRepository/Paginators.swift b/Sources/Services/AWSServerlessApplicationRepository/Paginators.swift index 3d70a9beda0..4349e3e89cf 100644 --- a/Sources/Services/AWSServerlessApplicationRepository/Paginators.swift +++ b/Sources/Services/AWSServerlessApplicationRepository/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationDependenciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationDependenciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationDependenciesOutputResponse` extension ServerlessApplicationRepositoryClient { + /// Paginate over `[ListApplicationDependenciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationDependenciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationDependenciesOutputResponse` public func listApplicationDependenciesPaginated(input: ListApplicationDependenciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationDependenciesInput.nextToken, outputKey: \ListApplicationDependenciesOutputResponse.nextToken, paginationFunction: self.listApplicationDependencies(input:)) } @@ -26,16 +25,15 @@ extension ListApplicationDependenciesInput: ClientRuntime.PaginateToken { semanticVersion: self.semanticVersion )} } - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension ServerlessApplicationRepositoryClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -48,16 +46,15 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListApplicationVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationVersionsOutputResponse` extension ServerlessApplicationRepositoryClient { + /// Paginate over `[ListApplicationVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationVersionsOutputResponse` public func listApplicationVersionsPaginated(input: ListApplicationVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationVersionsInput.nextToken, outputKey: \ListApplicationVersionsOutputResponse.nextToken, paginationFunction: self.listApplicationVersions(input:)) } diff --git a/Sources/Services/AWSServiceCatalog/Paginators.swift b/Sources/Services/AWSServiceCatalog/Paginators.swift index ed4950e4118..64c38d704ca 100644 --- a/Sources/Services/AWSServiceCatalog/Paginators.swift +++ b/Sources/Services/AWSServiceCatalog/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribePortfolioSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribePortfolioSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribePortfolioSharesOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[DescribePortfolioSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribePortfolioSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribePortfolioSharesOutputResponse` public func describePortfolioSharesPaginated(input: DescribePortfolioSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribePortfolioSharesInput.pageToken, outputKey: \DescribePortfolioSharesOutputResponse.nextPageToken, paginationFunction: self.describePortfolioShares(input:)) } @@ -26,16 +25,15 @@ extension DescribePortfolioSharesInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[GetProvisionedProductOutputsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetProvisionedProductOutputsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetProvisionedProductOutputsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[GetProvisionedProductOutputsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetProvisionedProductOutputsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetProvisionedProductOutputsOutputResponse` public func getProvisionedProductOutputsPaginated(input: GetProvisionedProductOutputsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetProvisionedProductOutputsInput.pageToken, outputKey: \GetProvisionedProductOutputsOutputResponse.nextPageToken, paginationFunction: self.getProvisionedProductOutputs(input:)) } @@ -52,16 +50,15 @@ extension GetProvisionedProductOutputsInput: ClientRuntime.PaginateToken { provisionedProductName: self.provisionedProductName )} } - -/// Paginate over `[ListAcceptedPortfolioSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAcceptedPortfolioSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAcceptedPortfolioSharesOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListAcceptedPortfolioSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAcceptedPortfolioSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAcceptedPortfolioSharesOutputResponse` public func listAcceptedPortfolioSharesPaginated(input: ListAcceptedPortfolioSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAcceptedPortfolioSharesInput.pageToken, outputKey: \ListAcceptedPortfolioSharesOutputResponse.nextPageToken, paginationFunction: self.listAcceptedPortfolioShares(input:)) } @@ -76,16 +73,15 @@ extension ListAcceptedPortfolioSharesInput: ClientRuntime.PaginateToken { portfolioShareType: self.portfolioShareType )} } - -/// Paginate over `[ListBudgetsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBudgetsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBudgetsForResourceOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListBudgetsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBudgetsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBudgetsForResourceOutputResponse` public func listBudgetsForResourcePaginated(input: ListBudgetsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBudgetsForResourceInput.pageToken, outputKey: \ListBudgetsForResourceOutputResponse.nextPageToken, paginationFunction: self.listBudgetsForResource(input:)) } @@ -100,16 +96,15 @@ extension ListBudgetsForResourceInput: ClientRuntime.PaginateToken { resourceId: self.resourceId )} } - -/// Paginate over `[ListConstraintsForPortfolioOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConstraintsForPortfolioInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConstraintsForPortfolioOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListConstraintsForPortfolioOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConstraintsForPortfolioInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConstraintsForPortfolioOutputResponse` public func listConstraintsForPortfolioPaginated(input: ListConstraintsForPortfolioInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConstraintsForPortfolioInput.pageToken, outputKey: \ListConstraintsForPortfolioOutputResponse.nextPageToken, paginationFunction: self.listConstraintsForPortfolio(input:)) } @@ -125,16 +120,15 @@ extension ListConstraintsForPortfolioInput: ClientRuntime.PaginateToken { productId: self.productId )} } - -/// Paginate over `[ListLaunchPathsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLaunchPathsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLaunchPathsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListLaunchPathsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLaunchPathsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLaunchPathsOutputResponse` public func listLaunchPathsPaginated(input: ListLaunchPathsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLaunchPathsInput.pageToken, outputKey: \ListLaunchPathsOutputResponse.nextPageToken, paginationFunction: self.listLaunchPaths(input:)) } @@ -149,16 +143,15 @@ extension ListLaunchPathsInput: ClientRuntime.PaginateToken { productId: self.productId )} } - -/// Paginate over `[ListOrganizationPortfolioAccessOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationPortfolioAccessInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationPortfolioAccessOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListOrganizationPortfolioAccessOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationPortfolioAccessInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationPortfolioAccessOutputResponse` public func listOrganizationPortfolioAccessPaginated(input: ListOrganizationPortfolioAccessInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationPortfolioAccessInput.pageToken, outputKey: \ListOrganizationPortfolioAccessOutputResponse.nextPageToken, paginationFunction: self.listOrganizationPortfolioAccess(input:)) } @@ -174,16 +167,15 @@ extension ListOrganizationPortfolioAccessInput: ClientRuntime.PaginateToken { portfolioId: self.portfolioId )} } - -/// Paginate over `[ListPortfolioAccessOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPortfolioAccessInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPortfolioAccessOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListPortfolioAccessOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPortfolioAccessInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPortfolioAccessOutputResponse` public func listPortfolioAccessPaginated(input: ListPortfolioAccessInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPortfolioAccessInput.pageToken, outputKey: \ListPortfolioAccessOutputResponse.nextPageToken, paginationFunction: self.listPortfolioAccess(input:)) } @@ -199,16 +191,15 @@ extension ListPortfolioAccessInput: ClientRuntime.PaginateToken { portfolioId: self.portfolioId )} } - -/// Paginate over `[ListPortfoliosOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPortfoliosInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPortfoliosOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListPortfoliosOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPortfoliosInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPortfoliosOutputResponse` public func listPortfoliosPaginated(input: ListPortfoliosInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPortfoliosInput.pageToken, outputKey: \ListPortfoliosOutputResponse.nextPageToken, paginationFunction: self.listPortfolios(input:)) } @@ -222,16 +213,15 @@ extension ListPortfoliosInput: ClientRuntime.PaginateToken { pageToken: token )} } - -/// Paginate over `[ListPortfoliosForProductOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPortfoliosForProductInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPortfoliosForProductOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListPortfoliosForProductOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPortfoliosForProductInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPortfoliosForProductOutputResponse` public func listPortfoliosForProductPaginated(input: ListPortfoliosForProductInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPortfoliosForProductInput.pageToken, outputKey: \ListPortfoliosForProductOutputResponse.nextPageToken, paginationFunction: self.listPortfoliosForProduct(input:)) } @@ -246,16 +236,15 @@ extension ListPortfoliosForProductInput: ClientRuntime.PaginateToken { productId: self.productId )} } - -/// Paginate over `[ListPrincipalsForPortfolioOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPrincipalsForPortfolioInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalsForPortfolioOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListPrincipalsForPortfolioOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPrincipalsForPortfolioInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPrincipalsForPortfolioOutputResponse` public func listPrincipalsForPortfolioPaginated(input: ListPrincipalsForPortfolioInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPrincipalsForPortfolioInput.pageToken, outputKey: \ListPrincipalsForPortfolioOutputResponse.nextPageToken, paginationFunction: self.listPrincipalsForPortfolio(input:)) } @@ -270,16 +259,15 @@ extension ListPrincipalsForPortfolioInput: ClientRuntime.PaginateToken { portfolioId: self.portfolioId )} } - -/// Paginate over `[ListProvisioningArtifactsForServiceActionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProvisioningArtifactsForServiceActionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningArtifactsForServiceActionOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListProvisioningArtifactsForServiceActionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProvisioningArtifactsForServiceActionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProvisioningArtifactsForServiceActionOutputResponse` public func listProvisioningArtifactsForServiceActionPaginated(input: ListProvisioningArtifactsForServiceActionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProvisioningArtifactsForServiceActionInput.pageToken, outputKey: \ListProvisioningArtifactsForServiceActionOutputResponse.nextPageToken, paginationFunction: self.listProvisioningArtifactsForServiceAction(input:)) } @@ -294,16 +282,15 @@ extension ListProvisioningArtifactsForServiceActionInput: ClientRuntime.Paginate serviceActionId: self.serviceActionId )} } - -/// Paginate over `[ListResourcesForTagOptionOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesForTagOptionInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesForTagOptionOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListResourcesForTagOptionOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesForTagOptionInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesForTagOptionOutputResponse` public func listResourcesForTagOptionPaginated(input: ListResourcesForTagOptionInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesForTagOptionInput.pageToken, outputKey: \ListResourcesForTagOptionOutputResponse.pageToken, paginationFunction: self.listResourcesForTagOption(input:)) } @@ -318,16 +305,15 @@ extension ListResourcesForTagOptionInput: ClientRuntime.PaginateToken { tagOptionId: self.tagOptionId )} } - -/// Paginate over `[ListServiceActionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServiceActionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServiceActionsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListServiceActionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServiceActionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServiceActionsOutputResponse` public func listServiceActionsPaginated(input: ListServiceActionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServiceActionsInput.pageToken, outputKey: \ListServiceActionsOutputResponse.nextPageToken, paginationFunction: self.listServiceActions(input:)) } @@ -341,16 +327,15 @@ extension ListServiceActionsInput: ClientRuntime.PaginateToken { pageToken: token )} } - -/// Paginate over `[ListServiceActionsForProvisioningArtifactOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServiceActionsForProvisioningArtifactInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServiceActionsForProvisioningArtifactOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListServiceActionsForProvisioningArtifactOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServiceActionsForProvisioningArtifactInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServiceActionsForProvisioningArtifactOutputResponse` public func listServiceActionsForProvisioningArtifactPaginated(input: ListServiceActionsForProvisioningArtifactInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServiceActionsForProvisioningArtifactInput.pageToken, outputKey: \ListServiceActionsForProvisioningArtifactOutputResponse.nextPageToken, paginationFunction: self.listServiceActionsForProvisioningArtifact(input:)) } @@ -366,16 +351,15 @@ extension ListServiceActionsForProvisioningArtifactInput: ClientRuntime.Paginate provisioningArtifactId: self.provisioningArtifactId )} } - -/// Paginate over `[ListTagOptionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagOptionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagOptionsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[ListTagOptionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagOptionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagOptionsOutputResponse` public func listTagOptionsPaginated(input: ListTagOptionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagOptionsInput.pageToken, outputKey: \ListTagOptionsOutputResponse.pageToken, paginationFunction: self.listTagOptions(input:)) } @@ -389,16 +373,15 @@ extension ListTagOptionsInput: ClientRuntime.PaginateToken { pageToken: token )} } - -/// Paginate over `[SearchProductsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchProductsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchProductsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[SearchProductsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchProductsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchProductsOutputResponse` public func searchProductsPaginated(input: SearchProductsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchProductsInput.pageToken, outputKey: \SearchProductsOutputResponse.nextPageToken, paginationFunction: self.searchProducts(input:)) } @@ -415,16 +398,15 @@ extension SearchProductsInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[SearchProductsAsAdminOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchProductsAsAdminInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchProductsAsAdminOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[SearchProductsAsAdminOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchProductsAsAdminInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchProductsAsAdminOutputResponse` public func searchProductsAsAdminPaginated(input: SearchProductsAsAdminInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchProductsAsAdminInput.pageToken, outputKey: \SearchProductsAsAdminOutputResponse.nextPageToken, paginationFunction: self.searchProductsAsAdmin(input:)) } @@ -443,16 +425,15 @@ extension SearchProductsAsAdminInput: ClientRuntime.PaginateToken { sortOrder: self.sortOrder )} } - -/// Paginate over `[SearchProvisionedProductsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[SearchProvisionedProductsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `SearchProvisionedProductsOutputResponse` extension ServiceCatalogClient { + /// Paginate over `[SearchProvisionedProductsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[SearchProvisionedProductsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `SearchProvisionedProductsOutputResponse` public func searchProvisionedProductsPaginated(input: SearchProvisionedProductsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \SearchProvisionedProductsInput.pageToken, outputKey: \SearchProvisionedProductsOutputResponse.nextPageToken, paginationFunction: self.searchProvisionedProducts(input:)) } diff --git a/Sources/Services/AWSServiceCatalogAppRegistry/Paginators.swift b/Sources/Services/AWSServiceCatalogAppRegistry/Paginators.swift index e390001f7a5..1a04c559be1 100644 --- a/Sources/Services/AWSServiceCatalogAppRegistry/Paginators.swift +++ b/Sources/Services/AWSServiceCatalogAppRegistry/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension ServiceCatalogAppRegistryClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -25,24 +24,23 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` -/// to access the nested member `[ServiceCatalogAppRegistryClientTypes.ApplicationSummary]` -/// - Returns: `[ServiceCatalogAppRegistryClientTypes.ApplicationSummary]` extension PaginatorSequence where Input == ListApplicationsInput, Output == ListApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` + /// to access the nested member `[ServiceCatalogAppRegistryClientTypes.ApplicationSummary]` + /// - Returns: `[ServiceCatalogAppRegistryClientTypes.ApplicationSummary]` public func applications() async throws -> [ServiceCatalogAppRegistryClientTypes.ApplicationSummary] { return try await self.asyncCompactMap { item in item.applications } } } - -/// Paginate over `[ListAssociatedAttributeGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedAttributeGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedAttributeGroupsOutputResponse` extension ServiceCatalogAppRegistryClient { + /// Paginate over `[ListAssociatedAttributeGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedAttributeGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedAttributeGroupsOutputResponse` public func listAssociatedAttributeGroupsPaginated(input: ListAssociatedAttributeGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedAttributeGroupsInput.nextToken, outputKey: \ListAssociatedAttributeGroupsOutputResponse.nextToken, paginationFunction: self.listAssociatedAttributeGroups(input:)) } @@ -57,24 +55,23 @@ extension ListAssociatedAttributeGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociatedAttributeGroupsPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListAssociatedAttributeGroupsInput, Output == ListAssociatedAttributeGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociatedAttributeGroupsPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func attributeGroups() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.attributeGroups } } } - -/// Paginate over `[ListAssociatedResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedResourcesOutputResponse` extension ServiceCatalogAppRegistryClient { + /// Paginate over `[ListAssociatedResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedResourcesOutputResponse` public func listAssociatedResourcesPaginated(input: ListAssociatedResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedResourcesInput.nextToken, outputKey: \ListAssociatedResourcesOutputResponse.nextToken, paginationFunction: self.listAssociatedResources(input:)) } @@ -89,24 +86,23 @@ extension ListAssociatedResourcesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAssociatedResourcesPaginated` -/// to access the nested member `[ServiceCatalogAppRegistryClientTypes.ResourceInfo]` -/// - Returns: `[ServiceCatalogAppRegistryClientTypes.ResourceInfo]` extension PaginatorSequence where Input == ListAssociatedResourcesInput, Output == ListAssociatedResourcesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssociatedResourcesPaginated` + /// to access the nested member `[ServiceCatalogAppRegistryClientTypes.ResourceInfo]` + /// - Returns: `[ServiceCatalogAppRegistryClientTypes.ResourceInfo]` public func resources() async throws -> [ServiceCatalogAppRegistryClientTypes.ResourceInfo] { return try await self.asyncCompactMap { item in item.resources } } } - -/// Paginate over `[ListAttributeGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttributeGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttributeGroupsOutputResponse` extension ServiceCatalogAppRegistryClient { + /// Paginate over `[ListAttributeGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttributeGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttributeGroupsOutputResponse` public func listAttributeGroupsPaginated(input: ListAttributeGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttributeGroupsInput.nextToken, outputKey: \ListAttributeGroupsOutputResponse.nextToken, paginationFunction: self.listAttributeGroups(input:)) } @@ -120,24 +116,23 @@ extension ListAttributeGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttributeGroupsPaginated` -/// to access the nested member `[ServiceCatalogAppRegistryClientTypes.AttributeGroupSummary]` -/// - Returns: `[ServiceCatalogAppRegistryClientTypes.AttributeGroupSummary]` extension PaginatorSequence where Input == ListAttributeGroupsInput, Output == ListAttributeGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttributeGroupsPaginated` + /// to access the nested member `[ServiceCatalogAppRegistryClientTypes.AttributeGroupSummary]` + /// - Returns: `[ServiceCatalogAppRegistryClientTypes.AttributeGroupSummary]` public func attributeGroups() async throws -> [ServiceCatalogAppRegistryClientTypes.AttributeGroupSummary] { return try await self.asyncCompactMap { item in item.attributeGroups } } } - -/// Paginate over `[ListAttributeGroupsForApplicationOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttributeGroupsForApplicationInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttributeGroupsForApplicationOutputResponse` extension ServiceCatalogAppRegistryClient { + /// Paginate over `[ListAttributeGroupsForApplicationOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttributeGroupsForApplicationInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttributeGroupsForApplicationOutputResponse` public func listAttributeGroupsForApplicationPaginated(input: ListAttributeGroupsForApplicationInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttributeGroupsForApplicationInput.nextToken, outputKey: \ListAttributeGroupsForApplicationOutputResponse.nextToken, paginationFunction: self.listAttributeGroupsForApplication(input:)) } @@ -152,10 +147,10 @@ extension ListAttributeGroupsForApplicationInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttributeGroupsForApplicationPaginated` -/// to access the nested member `[ServiceCatalogAppRegistryClientTypes.AttributeGroupDetails]` -/// - Returns: `[ServiceCatalogAppRegistryClientTypes.AttributeGroupDetails]` extension PaginatorSequence where Input == ListAttributeGroupsForApplicationInput, Output == ListAttributeGroupsForApplicationOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttributeGroupsForApplicationPaginated` + /// to access the nested member `[ServiceCatalogAppRegistryClientTypes.AttributeGroupDetails]` + /// - Returns: `[ServiceCatalogAppRegistryClientTypes.AttributeGroupDetails]` public func attributeGroupsDetails() async throws -> [ServiceCatalogAppRegistryClientTypes.AttributeGroupDetails] { return try await self.asyncCompactMap { item in item.attributeGroupsDetails } } diff --git a/Sources/Services/AWSServiceDiscovery/Paginators.swift b/Sources/Services/AWSServiceDiscovery/Paginators.swift index 84242591b82..f371ed6b6e0 100644 --- a/Sources/Services/AWSServiceDiscovery/Paginators.swift +++ b/Sources/Services/AWSServiceDiscovery/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[GetInstancesHealthStatusOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInstancesHealthStatusInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInstancesHealthStatusOutputResponse` extension ServiceDiscoveryClient { + /// Paginate over `[GetInstancesHealthStatusOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInstancesHealthStatusInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInstancesHealthStatusOutputResponse` public func getInstancesHealthStatusPaginated(input: GetInstancesHealthStatusInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInstancesHealthStatusInput.nextToken, outputKey: \GetInstancesHealthStatusOutputResponse.nextToken, paginationFunction: self.getInstancesHealthStatus(input:)) } @@ -26,16 +25,15 @@ extension GetInstancesHealthStatusInput: ClientRuntime.PaginateToken { serviceId: self.serviceId )} } - -/// Paginate over `[ListInstancesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListInstancesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` extension ServiceDiscoveryClient { + /// Paginate over `[ListInstancesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListInstancesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListInstancesOutputResponse` public func listInstancesPaginated(input: ListInstancesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListInstancesInput.nextToken, outputKey: \ListInstancesOutputResponse.nextToken, paginationFunction: self.listInstances(input:)) } @@ -49,16 +47,15 @@ extension ListInstancesInput: ClientRuntime.PaginateToken { serviceId: self.serviceId )} } - -/// Paginate over `[ListNamespacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNamespacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNamespacesOutputResponse` extension ServiceDiscoveryClient { + /// Paginate over `[ListNamespacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNamespacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNamespacesOutputResponse` public func listNamespacesPaginated(input: ListNamespacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNamespacesInput.nextToken, outputKey: \ListNamespacesOutputResponse.nextToken, paginationFunction: self.listNamespaces(input:)) } @@ -72,16 +69,15 @@ extension ListNamespacesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListOperationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOperationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` extension ServiceDiscoveryClient { + /// Paginate over `[ListOperationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOperationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOperationsOutputResponse` public func listOperationsPaginated(input: ListOperationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOperationsInput.nextToken, outputKey: \ListOperationsOutputResponse.nextToken, paginationFunction: self.listOperations(input:)) } @@ -95,16 +91,15 @@ extension ListOperationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` extension ServiceDiscoveryClient { + /// Paginate over `[ListServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` public func listServicesPaginated(input: ListServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesInput.nextToken, outputKey: \ListServicesOutputResponse.nextToken, paginationFunction: self.listServices(input:)) } diff --git a/Sources/Services/AWSServiceQuotas/Paginators.swift b/Sources/Services/AWSServiceQuotas/Paginators.swift index eab9133b45b..d807b7e9a30 100644 --- a/Sources/Services/AWSServiceQuotas/Paginators.swift +++ b/Sources/Services/AWSServiceQuotas/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAWSDefaultServiceQuotasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAWSDefaultServiceQuotasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAWSDefaultServiceQuotasOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListAWSDefaultServiceQuotasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAWSDefaultServiceQuotasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAWSDefaultServiceQuotasOutputResponse` public func listAWSDefaultServiceQuotasPaginated(input: ListAWSDefaultServiceQuotasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAWSDefaultServiceQuotasInput.nextToken, outputKey: \ListAWSDefaultServiceQuotasOutputResponse.nextToken, paginationFunction: self.listAWSDefaultServiceQuotas(input:)) } @@ -26,24 +25,23 @@ extension ListAWSDefaultServiceQuotasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAWSDefaultServiceQuotasPaginated` -/// to access the nested member `[ServiceQuotasClientTypes.ServiceQuota]` -/// - Returns: `[ServiceQuotasClientTypes.ServiceQuota]` extension PaginatorSequence where Input == ListAWSDefaultServiceQuotasInput, Output == ListAWSDefaultServiceQuotasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAWSDefaultServiceQuotasPaginated` + /// to access the nested member `[ServiceQuotasClientTypes.ServiceQuota]` + /// - Returns: `[ServiceQuotasClientTypes.ServiceQuota]` public func quotas() async throws -> [ServiceQuotasClientTypes.ServiceQuota] { return try await self.asyncCompactMap { item in item.quotas } } } - -/// Paginate over `[ListRequestedServiceQuotaChangeHistoryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRequestedServiceQuotaChangeHistoryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRequestedServiceQuotaChangeHistoryOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListRequestedServiceQuotaChangeHistoryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRequestedServiceQuotaChangeHistoryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRequestedServiceQuotaChangeHistoryOutputResponse` public func listRequestedServiceQuotaChangeHistoryPaginated(input: ListRequestedServiceQuotaChangeHistoryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRequestedServiceQuotaChangeHistoryInput.nextToken, outputKey: \ListRequestedServiceQuotaChangeHistoryOutputResponse.nextToken, paginationFunction: self.listRequestedServiceQuotaChangeHistory(input:)) } @@ -59,24 +57,23 @@ extension ListRequestedServiceQuotaChangeHistoryInput: ClientRuntime.PaginateTok )} } -/// This paginator transforms the `AsyncSequence` returned by `listRequestedServiceQuotaChangeHistoryPaginated` -/// to access the nested member `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` -/// - Returns: `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` extension PaginatorSequence where Input == ListRequestedServiceQuotaChangeHistoryInput, Output == ListRequestedServiceQuotaChangeHistoryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRequestedServiceQuotaChangeHistoryPaginated` + /// to access the nested member `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` + /// - Returns: `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` public func requestedQuotas() async throws -> [ServiceQuotasClientTypes.RequestedServiceQuotaChange] { return try await self.asyncCompactMap { item in item.requestedQuotas } } } - -/// Paginate over `[ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListRequestedServiceQuotaChangeHistoryByQuotaInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListRequestedServiceQuotaChangeHistoryByQuotaInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse` public func listRequestedServiceQuotaChangeHistoryByQuotaPaginated(input: ListRequestedServiceQuotaChangeHistoryByQuotaInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListRequestedServiceQuotaChangeHistoryByQuotaInput.nextToken, outputKey: \ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse.nextToken, paginationFunction: self.listRequestedServiceQuotaChangeHistoryByQuota(input:)) } @@ -93,24 +90,23 @@ extension ListRequestedServiceQuotaChangeHistoryByQuotaInput: ClientRuntime.Pagi )} } -/// This paginator transforms the `AsyncSequence` returned by `listRequestedServiceQuotaChangeHistoryByQuotaPaginated` -/// to access the nested member `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` -/// - Returns: `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` extension PaginatorSequence where Input == ListRequestedServiceQuotaChangeHistoryByQuotaInput, Output == ListRequestedServiceQuotaChangeHistoryByQuotaOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listRequestedServiceQuotaChangeHistoryByQuotaPaginated` + /// to access the nested member `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` + /// - Returns: `[ServiceQuotasClientTypes.RequestedServiceQuotaChange]` public func requestedQuotas() async throws -> [ServiceQuotasClientTypes.RequestedServiceQuotaChange] { return try await self.asyncCompactMap { item in item.requestedQuotas } } } - -/// Paginate over `[ListServiceQuotaIncreaseRequestsInTemplateOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServiceQuotaIncreaseRequestsInTemplateInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServiceQuotaIncreaseRequestsInTemplateOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListServiceQuotaIncreaseRequestsInTemplateOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServiceQuotaIncreaseRequestsInTemplateInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServiceQuotaIncreaseRequestsInTemplateOutputResponse` public func listServiceQuotaIncreaseRequestsInTemplatePaginated(input: ListServiceQuotaIncreaseRequestsInTemplateInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServiceQuotaIncreaseRequestsInTemplateInput.nextToken, outputKey: \ListServiceQuotaIncreaseRequestsInTemplateOutputResponse.nextToken, paginationFunction: self.listServiceQuotaIncreaseRequestsInTemplate(input:)) } @@ -126,24 +122,23 @@ extension ListServiceQuotaIncreaseRequestsInTemplateInput: ClientRuntime.Paginat )} } -/// This paginator transforms the `AsyncSequence` returned by `listServiceQuotaIncreaseRequestsInTemplatePaginated` -/// to access the nested member `[ServiceQuotasClientTypes.ServiceQuotaIncreaseRequestInTemplate]` -/// - Returns: `[ServiceQuotasClientTypes.ServiceQuotaIncreaseRequestInTemplate]` extension PaginatorSequence where Input == ListServiceQuotaIncreaseRequestsInTemplateInput, Output == ListServiceQuotaIncreaseRequestsInTemplateOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServiceQuotaIncreaseRequestsInTemplatePaginated` + /// to access the nested member `[ServiceQuotasClientTypes.ServiceQuotaIncreaseRequestInTemplate]` + /// - Returns: `[ServiceQuotasClientTypes.ServiceQuotaIncreaseRequestInTemplate]` public func serviceQuotaIncreaseRequestInTemplateList() async throws -> [ServiceQuotasClientTypes.ServiceQuotaIncreaseRequestInTemplate] { return try await self.asyncCompactMap { item in item.serviceQuotaIncreaseRequestInTemplateList } } } - -/// Paginate over `[ListServiceQuotasOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServiceQuotasInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServiceQuotasOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListServiceQuotasOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServiceQuotasInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServiceQuotasOutputResponse` public func listServiceQuotasPaginated(input: ListServiceQuotasInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServiceQuotasInput.nextToken, outputKey: \ListServiceQuotasOutputResponse.nextToken, paginationFunction: self.listServiceQuotas(input:)) } @@ -158,24 +153,23 @@ extension ListServiceQuotasInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServiceQuotasPaginated` -/// to access the nested member `[ServiceQuotasClientTypes.ServiceQuota]` -/// - Returns: `[ServiceQuotasClientTypes.ServiceQuota]` extension PaginatorSequence where Input == ListServiceQuotasInput, Output == ListServiceQuotasOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServiceQuotasPaginated` + /// to access the nested member `[ServiceQuotasClientTypes.ServiceQuota]` + /// - Returns: `[ServiceQuotasClientTypes.ServiceQuota]` public func quotas() async throws -> [ServiceQuotasClientTypes.ServiceQuota] { return try await self.asyncCompactMap { item in item.quotas } } } - -/// Paginate over `[ListServicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` extension ServiceQuotasClient { + /// Paginate over `[ListServicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServicesOutputResponse` public func listServicesPaginated(input: ListServicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServicesInput.nextToken, outputKey: \ListServicesOutputResponse.nextToken, paginationFunction: self.listServices(input:)) } @@ -189,10 +183,10 @@ extension ListServicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` -/// to access the nested member `[ServiceQuotasClientTypes.ServiceInfo]` -/// - Returns: `[ServiceQuotasClientTypes.ServiceInfo]` extension PaginatorSequence where Input == ListServicesInput, Output == ListServicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServicesPaginated` + /// to access the nested member `[ServiceQuotasClientTypes.ServiceInfo]` + /// - Returns: `[ServiceQuotasClientTypes.ServiceInfo]` public func services() async throws -> [ServiceQuotasClientTypes.ServiceInfo] { return try await self.asyncCompactMap { item in item.services } } diff --git a/Sources/Services/AWSShield/EndpointResolver.swift b/Sources/Services/AWSShield/EndpointResolver.swift index b7fb02d467d..b9c7abbd06a 100644 --- a/Sources/Services/AWSShield/EndpointResolver.swift +++ b/Sources/Services/AWSShield/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"shield\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"shield\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"shield\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"shield\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://shield-fips.us-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://shield.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"shield\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"shield\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"shield\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"shield\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"shield\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://shield-fips.us-east-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://shield.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"shield\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://shield.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSShield/Paginators.swift b/Sources/Services/AWSShield/Paginators.swift index de3979a185c..6632a4f2dac 100644 --- a/Sources/Services/AWSShield/Paginators.swift +++ b/Sources/Services/AWSShield/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAttacksOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAttacksInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAttacksOutputResponse` extension ShieldClient { + /// Paginate over `[ListAttacksOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAttacksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAttacksOutputResponse` public func listAttacksPaginated(input: ListAttacksInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAttacksInput.nextToken, outputKey: \ListAttacksOutputResponse.nextToken, paginationFunction: self.listAttacks(input:)) } @@ -28,24 +27,23 @@ extension ListAttacksInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAttacksPaginated` -/// to access the nested member `[ShieldClientTypes.AttackSummary]` -/// - Returns: `[ShieldClientTypes.AttackSummary]` extension PaginatorSequence where Input == ListAttacksInput, Output == ListAttacksOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAttacksPaginated` + /// to access the nested member `[ShieldClientTypes.AttackSummary]` + /// - Returns: `[ShieldClientTypes.AttackSummary]` public func attackSummaries() async throws -> [ShieldClientTypes.AttackSummary] { return try await self.asyncCompactMap { item in item.attackSummaries } } } - -/// Paginate over `[ListProtectionGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProtectionGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProtectionGroupsOutputResponse` extension ShieldClient { + /// Paginate over `[ListProtectionGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProtectionGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProtectionGroupsOutputResponse` public func listProtectionGroupsPaginated(input: ListProtectionGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProtectionGroupsInput.nextToken, outputKey: \ListProtectionGroupsOutputResponse.nextToken, paginationFunction: self.listProtectionGroups(input:)) } @@ -59,16 +57,15 @@ extension ListProtectionGroupsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListProtectionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProtectionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProtectionsOutputResponse` extension ShieldClient { + /// Paginate over `[ListProtectionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProtectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProtectionsOutputResponse` public func listProtectionsPaginated(input: ListProtectionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProtectionsInput.nextToken, outputKey: \ListProtectionsOutputResponse.nextToken, paginationFunction: self.listProtections(input:)) } @@ -83,24 +80,23 @@ extension ListProtectionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProtectionsPaginated` -/// to access the nested member `[ShieldClientTypes.Protection]` -/// - Returns: `[ShieldClientTypes.Protection]` extension PaginatorSequence where Input == ListProtectionsInput, Output == ListProtectionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProtectionsPaginated` + /// to access the nested member `[ShieldClientTypes.Protection]` + /// - Returns: `[ShieldClientTypes.Protection]` public func protections() async throws -> [ShieldClientTypes.Protection] { return try await self.asyncCompactMap { item in item.protections } } } - -/// Paginate over `[ListResourcesInProtectionGroupOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesInProtectionGroupInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesInProtectionGroupOutputResponse` extension ShieldClient { + /// Paginate over `[ListResourcesInProtectionGroupOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesInProtectionGroupInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesInProtectionGroupOutputResponse` public func listResourcesInProtectionGroupPaginated(input: ListResourcesInProtectionGroupInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesInProtectionGroupInput.nextToken, outputKey: \ListResourcesInProtectionGroupOutputResponse.nextToken, paginationFunction: self.listResourcesInProtectionGroup(input:)) } diff --git a/Sources/Services/AWSSigner/Paginators.swift b/Sources/Services/AWSSigner/Paginators.swift index 8ea74e69df0..ab0d4401598 100644 --- a/Sources/Services/AWSSigner/Paginators.swift +++ b/Sources/Services/AWSSigner/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSigningJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSigningJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSigningJobsOutputResponse` extension SignerClient { + /// Paginate over `[ListSigningJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSigningJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSigningJobsOutputResponse` public func listSigningJobsPaginated(input: ListSigningJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSigningJobsInput.nextToken, outputKey: \ListSigningJobsOutputResponse.nextToken, paginationFunction: self.listSigningJobs(input:)) } @@ -31,16 +30,15 @@ extension ListSigningJobsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListSigningPlatformsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSigningPlatformsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSigningPlatformsOutputResponse` extension SignerClient { + /// Paginate over `[ListSigningPlatformsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSigningPlatformsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSigningPlatformsOutputResponse` public func listSigningPlatformsPaginated(input: ListSigningPlatformsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSigningPlatformsInput.nextToken, outputKey: \ListSigningPlatformsOutputResponse.nextToken, paginationFunction: self.listSigningPlatforms(input:)) } @@ -56,16 +54,15 @@ extension ListSigningPlatformsInput: ClientRuntime.PaginateToken { target: self.target )} } - -/// Paginate over `[ListSigningProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSigningProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSigningProfilesOutputResponse` extension SignerClient { + /// Paginate over `[ListSigningProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSigningProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSigningProfilesOutputResponse` public func listSigningProfilesPaginated(input: ListSigningProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSigningProfilesInput.nextToken, outputKey: \ListSigningProfilesOutputResponse.nextToken, paginationFunction: self.listSigningProfiles(input:)) } diff --git a/Sources/Services/AWSSnowball/Paginators.swift b/Sources/Services/AWSSnowball/Paginators.swift index 36c18a9f73f..ea7402e233e 100644 --- a/Sources/Services/AWSSnowball/Paginators.swift +++ b/Sources/Services/AWSSnowball/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeAddressesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeAddressesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressesOutputResponse` extension SnowballClient { + /// Paginate over `[DescribeAddressesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeAddressesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeAddressesOutputResponse` public func describeAddressesPaginated(input: DescribeAddressesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeAddressesInput.nextToken, outputKey: \DescribeAddressesOutputResponse.nextToken, paginationFunction: self.describeAddresses(input:)) } @@ -25,24 +24,23 @@ extension DescribeAddressesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeAddressesPaginated` -/// to access the nested member `[SnowballClientTypes.Address]` -/// - Returns: `[SnowballClientTypes.Address]` extension PaginatorSequence where Input == DescribeAddressesInput, Output == DescribeAddressesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeAddressesPaginated` + /// to access the nested member `[SnowballClientTypes.Address]` + /// - Returns: `[SnowballClientTypes.Address]` public func addresses() async throws -> [SnowballClientTypes.Address] { return try await self.asyncCompactMap { item in item.addresses } } } - -/// Paginate over `[ListClusterJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClusterJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClusterJobsOutputResponse` extension SnowballClient { + /// Paginate over `[ListClusterJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClusterJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClusterJobsOutputResponse` public func listClusterJobsPaginated(input: ListClusterJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClusterJobsInput.nextToken, outputKey: \ListClusterJobsOutputResponse.nextToken, paginationFunction: self.listClusterJobs(input:)) } @@ -57,24 +55,23 @@ extension ListClusterJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClusterJobsPaginated` -/// to access the nested member `[SnowballClientTypes.JobListEntry]` -/// - Returns: `[SnowballClientTypes.JobListEntry]` extension PaginatorSequence where Input == ListClusterJobsInput, Output == ListClusterJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClusterJobsPaginated` + /// to access the nested member `[SnowballClientTypes.JobListEntry]` + /// - Returns: `[SnowballClientTypes.JobListEntry]` public func jobListEntries() async throws -> [SnowballClientTypes.JobListEntry] { return try await self.asyncCompactMap { item in item.jobListEntries } } } - -/// Paginate over `[ListClustersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListClustersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` extension SnowballClient { + /// Paginate over `[ListClustersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListClustersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListClustersOutputResponse` public func listClustersPaginated(input: ListClustersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListClustersInput.nextToken, outputKey: \ListClustersOutputResponse.nextToken, paginationFunction: self.listClusters(input:)) } @@ -88,24 +85,23 @@ extension ListClustersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` -/// to access the nested member `[SnowballClientTypes.ClusterListEntry]` -/// - Returns: `[SnowballClientTypes.ClusterListEntry]` extension PaginatorSequence where Input == ListClustersInput, Output == ListClustersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listClustersPaginated` + /// to access the nested member `[SnowballClientTypes.ClusterListEntry]` + /// - Returns: `[SnowballClientTypes.ClusterListEntry]` public func clusterListEntries() async throws -> [SnowballClientTypes.ClusterListEntry] { return try await self.asyncCompactMap { item in item.clusterListEntries } } } - -/// Paginate over `[ListCompatibleImagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCompatibleImagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCompatibleImagesOutputResponse` extension SnowballClient { + /// Paginate over `[ListCompatibleImagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCompatibleImagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCompatibleImagesOutputResponse` public func listCompatibleImagesPaginated(input: ListCompatibleImagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCompatibleImagesInput.nextToken, outputKey: \ListCompatibleImagesOutputResponse.nextToken, paginationFunction: self.listCompatibleImages(input:)) } @@ -119,24 +115,23 @@ extension ListCompatibleImagesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCompatibleImagesPaginated` -/// to access the nested member `[SnowballClientTypes.CompatibleImage]` -/// - Returns: `[SnowballClientTypes.CompatibleImage]` extension PaginatorSequence where Input == ListCompatibleImagesInput, Output == ListCompatibleImagesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCompatibleImagesPaginated` + /// to access the nested member `[SnowballClientTypes.CompatibleImage]` + /// - Returns: `[SnowballClientTypes.CompatibleImage]` public func compatibleImages() async throws -> [SnowballClientTypes.CompatibleImage] { return try await self.asyncCompactMap { item in item.compatibleImages } } } - -/// Paginate over `[ListJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` extension SnowballClient { + /// Paginate over `[ListJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListJobsOutputResponse` public func listJobsPaginated(input: ListJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListJobsInput.nextToken, outputKey: \ListJobsOutputResponse.nextToken, paginationFunction: self.listJobs(input:)) } @@ -150,24 +145,23 @@ extension ListJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` -/// to access the nested member `[SnowballClientTypes.JobListEntry]` -/// - Returns: `[SnowballClientTypes.JobListEntry]` extension PaginatorSequence where Input == ListJobsInput, Output == ListJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listJobsPaginated` + /// to access the nested member `[SnowballClientTypes.JobListEntry]` + /// - Returns: `[SnowballClientTypes.JobListEntry]` public func jobListEntries() async throws -> [SnowballClientTypes.JobListEntry] { return try await self.asyncCompactMap { item in item.jobListEntries } } } - -/// Paginate over `[ListLongTermPricingOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLongTermPricingInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLongTermPricingOutputResponse` extension SnowballClient { + /// Paginate over `[ListLongTermPricingOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLongTermPricingInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLongTermPricingOutputResponse` public func listLongTermPricingPaginated(input: ListLongTermPricingInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLongTermPricingInput.nextToken, outputKey: \ListLongTermPricingOutputResponse.nextToken, paginationFunction: self.listLongTermPricing(input:)) } @@ -181,10 +175,10 @@ extension ListLongTermPricingInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listLongTermPricingPaginated` -/// to access the nested member `[SnowballClientTypes.LongTermPricingListEntry]` -/// - Returns: `[SnowballClientTypes.LongTermPricingListEntry]` extension PaginatorSequence where Input == ListLongTermPricingInput, Output == ListLongTermPricingOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listLongTermPricingPaginated` + /// to access the nested member `[SnowballClientTypes.LongTermPricingListEntry]` + /// - Returns: `[SnowballClientTypes.LongTermPricingListEntry]` public func longTermPricingEntries() async throws -> [SnowballClientTypes.LongTermPricingListEntry] { return try await self.asyncCompactMap { item in item.longTermPricingEntries } } diff --git a/Sources/Services/AWSSsmSap/Paginators.swift b/Sources/Services/AWSSsmSap/Paginators.swift index 52ac59cc30d..8a250fe0d9f 100644 --- a/Sources/Services/AWSSsmSap/Paginators.swift +++ b/Sources/Services/AWSSsmSap/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListApplicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListApplicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` extension SsmSapClient { + /// Paginate over `[ListApplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListApplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListApplicationsOutputResponse` public func listApplicationsPaginated(input: ListApplicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListApplicationsInput.nextToken, outputKey: \ListApplicationsOutputResponse.nextToken, paginationFunction: self.listApplications(input:)) } @@ -25,24 +24,23 @@ extension ListApplicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` -/// to access the nested member `[SsmSapClientTypes.ApplicationSummary]` -/// - Returns: `[SsmSapClientTypes.ApplicationSummary]` extension PaginatorSequence where Input == ListApplicationsInput, Output == ListApplicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listApplicationsPaginated` + /// to access the nested member `[SsmSapClientTypes.ApplicationSummary]` + /// - Returns: `[SsmSapClientTypes.ApplicationSummary]` public func applications() async throws -> [SsmSapClientTypes.ApplicationSummary] { return try await self.asyncCompactMap { item in item.applications } } } - -/// Paginate over `[ListComponentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListComponentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` extension SsmSapClient { + /// Paginate over `[ListComponentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListComponentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListComponentsOutputResponse` public func listComponentsPaginated(input: ListComponentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListComponentsInput.nextToken, outputKey: \ListComponentsOutputResponse.nextToken, paginationFunction: self.listComponents(input:)) } @@ -57,24 +55,23 @@ extension ListComponentsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listComponentsPaginated` -/// to access the nested member `[SsmSapClientTypes.ComponentSummary]` -/// - Returns: `[SsmSapClientTypes.ComponentSummary]` extension PaginatorSequence where Input == ListComponentsInput, Output == ListComponentsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listComponentsPaginated` + /// to access the nested member `[SsmSapClientTypes.ComponentSummary]` + /// - Returns: `[SsmSapClientTypes.ComponentSummary]` public func components() async throws -> [SsmSapClientTypes.ComponentSummary] { return try await self.asyncCompactMap { item in item.components } } } - -/// Paginate over `[ListDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` extension SsmSapClient { + /// Paginate over `[ListDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` public func listDatabasesPaginated(input: ListDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatabasesInput.nextToken, outputKey: \ListDatabasesOutputResponse.nextToken, paginationFunction: self.listDatabases(input:)) } @@ -90,10 +87,10 @@ extension ListDatabasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` -/// to access the nested member `[SsmSapClientTypes.DatabaseSummary]` -/// - Returns: `[SsmSapClientTypes.DatabaseSummary]` extension PaginatorSequence where Input == ListDatabasesInput, Output == ListDatabasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listDatabasesPaginated` + /// to access the nested member `[SsmSapClientTypes.DatabaseSummary]` + /// - Returns: `[SsmSapClientTypes.DatabaseSummary]` public func databases() async throws -> [SsmSapClientTypes.DatabaseSummary] { return try await self.asyncCompactMap { item in item.databases } } diff --git a/Sources/Services/AWSStorageGateway/Paginators.swift b/Sources/Services/AWSStorageGateway/Paginators.swift index 89bbdd1bd3b..6bc6496049c 100644 --- a/Sources/Services/AWSStorageGateway/Paginators.swift +++ b/Sources/Services/AWSStorageGateway/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeTapeArchivesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTapeArchivesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTapeArchivesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[DescribeTapeArchivesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTapeArchivesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTapeArchivesOutputResponse` public func describeTapeArchivesPaginated(input: DescribeTapeArchivesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTapeArchivesInput.marker, outputKey: \DescribeTapeArchivesOutputResponse.marker, paginationFunction: self.describeTapeArchives(input:)) } @@ -26,24 +25,23 @@ extension DescribeTapeArchivesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTapeArchivesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.TapeArchive]` -/// - Returns: `[StorageGatewayClientTypes.TapeArchive]` extension PaginatorSequence where Input == DescribeTapeArchivesInput, Output == DescribeTapeArchivesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTapeArchivesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.TapeArchive]` + /// - Returns: `[StorageGatewayClientTypes.TapeArchive]` public func tapeArchives() async throws -> [StorageGatewayClientTypes.TapeArchive] { return try await self.asyncCompactMap { item in item.tapeArchives } } } - -/// Paginate over `[DescribeTapeRecoveryPointsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTapeRecoveryPointsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTapeRecoveryPointsOutputResponse` extension StorageGatewayClient { + /// Paginate over `[DescribeTapeRecoveryPointsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTapeRecoveryPointsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTapeRecoveryPointsOutputResponse` public func describeTapeRecoveryPointsPaginated(input: DescribeTapeRecoveryPointsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTapeRecoveryPointsInput.marker, outputKey: \DescribeTapeRecoveryPointsOutputResponse.marker, paginationFunction: self.describeTapeRecoveryPoints(input:)) } @@ -58,24 +56,23 @@ extension DescribeTapeRecoveryPointsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTapeRecoveryPointsPaginated` -/// to access the nested member `[StorageGatewayClientTypes.TapeRecoveryPointInfo]` -/// - Returns: `[StorageGatewayClientTypes.TapeRecoveryPointInfo]` extension PaginatorSequence where Input == DescribeTapeRecoveryPointsInput, Output == DescribeTapeRecoveryPointsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTapeRecoveryPointsPaginated` + /// to access the nested member `[StorageGatewayClientTypes.TapeRecoveryPointInfo]` + /// - Returns: `[StorageGatewayClientTypes.TapeRecoveryPointInfo]` public func tapeRecoveryPointInfos() async throws -> [StorageGatewayClientTypes.TapeRecoveryPointInfo] { return try await self.asyncCompactMap { item in item.tapeRecoveryPointInfos } } } - -/// Paginate over `[DescribeTapesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeTapesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeTapesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[DescribeTapesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeTapesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeTapesOutputResponse` public func describeTapesPaginated(input: DescribeTapesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeTapesInput.marker, outputKey: \DescribeTapesOutputResponse.marker, paginationFunction: self.describeTapes(input:)) } @@ -91,24 +88,23 @@ extension DescribeTapesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeTapesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.Tape]` -/// - Returns: `[StorageGatewayClientTypes.Tape]` extension PaginatorSequence where Input == DescribeTapesInput, Output == DescribeTapesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeTapesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.Tape]` + /// - Returns: `[StorageGatewayClientTypes.Tape]` public func tapes() async throws -> [StorageGatewayClientTypes.Tape] { return try await self.asyncCompactMap { item in item.tapes } } } - -/// Paginate over `[DescribeVTLDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeVTLDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeVTLDevicesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[DescribeVTLDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeVTLDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeVTLDevicesOutputResponse` public func describeVTLDevicesPaginated(input: DescribeVTLDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeVTLDevicesInput.marker, outputKey: \DescribeVTLDevicesOutputResponse.marker, paginationFunction: self.describeVTLDevices(input:)) } @@ -124,24 +120,23 @@ extension DescribeVTLDevicesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeVTLDevicesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.VTLDevice]` -/// - Returns: `[StorageGatewayClientTypes.VTLDevice]` extension PaginatorSequence where Input == DescribeVTLDevicesInput, Output == DescribeVTLDevicesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeVTLDevicesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.VTLDevice]` + /// - Returns: `[StorageGatewayClientTypes.VTLDevice]` public func vtlDevices() async throws -> [StorageGatewayClientTypes.VTLDevice] { return try await self.asyncCompactMap { item in item.vtlDevices } } } - -/// Paginate over `[ListFileSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFileSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFileSharesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListFileSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFileSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFileSharesOutputResponse` public func listFileSharesPaginated(input: ListFileSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFileSharesInput.marker, outputKey: \ListFileSharesOutputResponse.nextMarker, paginationFunction: self.listFileShares(input:)) } @@ -156,24 +151,23 @@ extension ListFileSharesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFileSharesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.FileShareInfo]` -/// - Returns: `[StorageGatewayClientTypes.FileShareInfo]` extension PaginatorSequence where Input == ListFileSharesInput, Output == ListFileSharesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFileSharesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.FileShareInfo]` + /// - Returns: `[StorageGatewayClientTypes.FileShareInfo]` public func fileShareInfoList() async throws -> [StorageGatewayClientTypes.FileShareInfo] { return try await self.asyncCompactMap { item in item.fileShareInfoList } } } - -/// Paginate over `[ListFileSystemAssociationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFileSystemAssociationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFileSystemAssociationsOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListFileSystemAssociationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFileSystemAssociationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFileSystemAssociationsOutputResponse` public func listFileSystemAssociationsPaginated(input: ListFileSystemAssociationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFileSystemAssociationsInput.marker, outputKey: \ListFileSystemAssociationsOutputResponse.nextMarker, paginationFunction: self.listFileSystemAssociations(input:)) } @@ -188,24 +182,23 @@ extension ListFileSystemAssociationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFileSystemAssociationsPaginated` -/// to access the nested member `[StorageGatewayClientTypes.FileSystemAssociationSummary]` -/// - Returns: `[StorageGatewayClientTypes.FileSystemAssociationSummary]` extension PaginatorSequence where Input == ListFileSystemAssociationsInput, Output == ListFileSystemAssociationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFileSystemAssociationsPaginated` + /// to access the nested member `[StorageGatewayClientTypes.FileSystemAssociationSummary]` + /// - Returns: `[StorageGatewayClientTypes.FileSystemAssociationSummary]` public func fileSystemAssociationSummaryList() async throws -> [StorageGatewayClientTypes.FileSystemAssociationSummary] { return try await self.asyncCompactMap { item in item.fileSystemAssociationSummaryList } } } - -/// Paginate over `[ListGatewaysOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGatewaysInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListGatewaysOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGatewaysInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGatewaysOutputResponse` public func listGatewaysPaginated(input: ListGatewaysInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGatewaysInput.marker, outputKey: \ListGatewaysOutputResponse.marker, paginationFunction: self.listGateways(input:)) } @@ -219,24 +212,23 @@ extension ListGatewaysInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listGatewaysPaginated` -/// to access the nested member `[StorageGatewayClientTypes.GatewayInfo]` -/// - Returns: `[StorageGatewayClientTypes.GatewayInfo]` extension PaginatorSequence where Input == ListGatewaysInput, Output == ListGatewaysOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listGatewaysPaginated` + /// to access the nested member `[StorageGatewayClientTypes.GatewayInfo]` + /// - Returns: `[StorageGatewayClientTypes.GatewayInfo]` public func gateways() async throws -> [StorageGatewayClientTypes.GatewayInfo] { return try await self.asyncCompactMap { item in item.gateways } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.marker, outputKey: \ListTagsForResourceOutputResponse.marker, paginationFunction: self.listTagsForResource(input:)) } @@ -251,24 +243,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[StorageGatewayClientTypes.Tag]` -/// - Returns: `[StorageGatewayClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[StorageGatewayClientTypes.Tag]` + /// - Returns: `[StorageGatewayClientTypes.Tag]` public func tags() async throws -> [StorageGatewayClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListTapePoolsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTapePoolsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTapePoolsOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListTapePoolsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTapePoolsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTapePoolsOutputResponse` public func listTapePoolsPaginated(input: ListTapePoolsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTapePoolsInput.marker, outputKey: \ListTapePoolsOutputResponse.marker, paginationFunction: self.listTapePools(input:)) } @@ -283,24 +274,23 @@ extension ListTapePoolsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTapePoolsPaginated` -/// to access the nested member `[StorageGatewayClientTypes.PoolInfo]` -/// - Returns: `[StorageGatewayClientTypes.PoolInfo]` extension PaginatorSequence where Input == ListTapePoolsInput, Output == ListTapePoolsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTapePoolsPaginated` + /// to access the nested member `[StorageGatewayClientTypes.PoolInfo]` + /// - Returns: `[StorageGatewayClientTypes.PoolInfo]` public func poolInfos() async throws -> [StorageGatewayClientTypes.PoolInfo] { return try await self.asyncCompactMap { item in item.poolInfos } } } - -/// Paginate over `[ListTapesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTapesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTapesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListTapesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTapesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTapesOutputResponse` public func listTapesPaginated(input: ListTapesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTapesInput.marker, outputKey: \ListTapesOutputResponse.marker, paginationFunction: self.listTapes(input:)) } @@ -315,24 +305,23 @@ extension ListTapesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTapesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.TapeInfo]` -/// - Returns: `[StorageGatewayClientTypes.TapeInfo]` extension PaginatorSequence where Input == ListTapesInput, Output == ListTapesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTapesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.TapeInfo]` + /// - Returns: `[StorageGatewayClientTypes.TapeInfo]` public func tapeInfos() async throws -> [StorageGatewayClientTypes.TapeInfo] { return try await self.asyncCompactMap { item in item.tapeInfos } } } - -/// Paginate over `[ListVolumesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVolumesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVolumesOutputResponse` extension StorageGatewayClient { + /// Paginate over `[ListVolumesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVolumesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVolumesOutputResponse` public func listVolumesPaginated(input: ListVolumesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVolumesInput.marker, outputKey: \ListVolumesOutputResponse.marker, paginationFunction: self.listVolumes(input:)) } @@ -347,10 +336,10 @@ extension ListVolumesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listVolumesPaginated` -/// to access the nested member `[StorageGatewayClientTypes.VolumeInfo]` -/// - Returns: `[StorageGatewayClientTypes.VolumeInfo]` extension PaginatorSequence where Input == ListVolumesInput, Output == ListVolumesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listVolumesPaginated` + /// to access the nested member `[StorageGatewayClientTypes.VolumeInfo]` + /// - Returns: `[StorageGatewayClientTypes.VolumeInfo]` public func volumeInfos() async throws -> [StorageGatewayClientTypes.VolumeInfo] { return try await self.asyncCompactMap { item in item.volumeInfos } } diff --git a/Sources/Services/AWSSupport/EndpointResolver.swift b/Sources/Services/AWSSupport/EndpointResolver.swift index 0ec5cdf79ff..39b2da818a9 100644 --- a/Sources/Services/AWSSupport/EndpointResolver.swift +++ b/Sources/Services/AWSSupport/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://support-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-west-1\"]}],\"endpoint\":{\"url\":\"https://support.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://support-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://support.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://support.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"support\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://support.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"cn-north-1\",\"name\":\"sigv4\",\"signingName\":\"support\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://support.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-gov-west-1\",\"name\":\"sigv4\",\"signingName\":\"support\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://support.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-iso-east-1\",\"name\":\"sigv4\",\"signingName\":\"support\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://support.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-isob-east-1\",\"name\":\"sigv4\",\"signingName\":\"support\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://support.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://support-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"us-gov-west-1\"]}],\"endpoint\":{\"url\":\"https://support.us-gov-west-1.amazonaws.com\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://support-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://support.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://support.us-east-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"support\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-cn-global\"]}],\"endpoint\":{\"url\":\"https://support.cn-north-1.amazonaws.com.cn\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"support\",\"signingRegion\":\"cn-north-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-us-gov-global\"]}],\"endpoint\":{\"url\":\"https://support.us-gov-west-1.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"support\",\"signingRegion\":\"us-gov-west-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-global\"]}],\"endpoint\":{\"url\":\"https://support.us-iso-east-1.c2s.ic.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"support\",\"signingRegion\":\"us-iso-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-iso-b-global\"]}],\"endpoint\":{\"url\":\"https://support.us-isob-east-1.sc2s.sgov.gov\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"support\",\"signingRegion\":\"us-isob-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://support.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSSupport/Paginators.swift b/Sources/Services/AWSSupport/Paginators.swift index 362e1fd7863..a2c1e3719e4 100644 --- a/Sources/Services/AWSSupport/Paginators.swift +++ b/Sources/Services/AWSSupport/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCasesOutputResponse` extension SupportClient { + /// Paginate over `[DescribeCasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCasesOutputResponse` public func describeCasesPaginated(input: DescribeCasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCasesInput.nextToken, outputKey: \DescribeCasesOutputResponse.nextToken, paginationFunction: self.describeCases(input:)) } @@ -32,24 +31,23 @@ extension DescribeCasesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCasesPaginated` -/// to access the nested member `[SupportClientTypes.CaseDetails]` -/// - Returns: `[SupportClientTypes.CaseDetails]` extension PaginatorSequence where Input == DescribeCasesInput, Output == DescribeCasesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCasesPaginated` + /// to access the nested member `[SupportClientTypes.CaseDetails]` + /// - Returns: `[SupportClientTypes.CaseDetails]` public func cases() async throws -> [SupportClientTypes.CaseDetails] { return try await self.asyncCompactMap { item in item.cases } } } - -/// Paginate over `[DescribeCommunicationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCommunicationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCommunicationsOutputResponse` extension SupportClient { + /// Paginate over `[DescribeCommunicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCommunicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCommunicationsOutputResponse` public func describeCommunicationsPaginated(input: DescribeCommunicationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCommunicationsInput.nextToken, outputKey: \DescribeCommunicationsOutputResponse.nextToken, paginationFunction: self.describeCommunications(input:)) } @@ -66,10 +64,10 @@ extension DescribeCommunicationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeCommunicationsPaginated` -/// to access the nested member `[SupportClientTypes.Communication]` -/// - Returns: `[SupportClientTypes.Communication]` extension PaginatorSequence where Input == DescribeCommunicationsInput, Output == DescribeCommunicationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeCommunicationsPaginated` + /// to access the nested member `[SupportClientTypes.Communication]` + /// - Returns: `[SupportClientTypes.Communication]` public func communications() async throws -> [SupportClientTypes.Communication] { return try await self.asyncCompactMap { item in item.communications } } diff --git a/Sources/Services/AWSSupportApp/Paginators.swift b/Sources/Services/AWSSupportApp/Paginators.swift index 1043a9811d7..b1e6c7b4313 100644 --- a/Sources/Services/AWSSupportApp/Paginators.swift +++ b/Sources/Services/AWSSupportApp/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListSlackChannelConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSlackChannelConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSlackChannelConfigurationsOutputResponse` extension SupportAppClient { + /// Paginate over `[ListSlackChannelConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSlackChannelConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSlackChannelConfigurationsOutputResponse` public func listSlackChannelConfigurationsPaginated(input: ListSlackChannelConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSlackChannelConfigurationsInput.nextToken, outputKey: \ListSlackChannelConfigurationsOutputResponse.nextToken, paginationFunction: self.listSlackChannelConfigurations(input:)) } @@ -23,16 +22,15 @@ extension ListSlackChannelConfigurationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListSlackWorkspaceConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSlackWorkspaceConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSlackWorkspaceConfigurationsOutputResponse` extension SupportAppClient { + /// Paginate over `[ListSlackWorkspaceConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSlackWorkspaceConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSlackWorkspaceConfigurationsOutputResponse` public func listSlackWorkspaceConfigurationsPaginated(input: ListSlackWorkspaceConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSlackWorkspaceConfigurationsInput.nextToken, outputKey: \ListSlackWorkspaceConfigurationsOutputResponse.nextToken, paginationFunction: self.listSlackWorkspaceConfigurations(input:)) } diff --git a/Sources/Services/AWSSynthetics/Paginators.swift b/Sources/Services/AWSSynthetics/Paginators.swift index ba3943bab2b..24c6a5f0b3a 100644 --- a/Sources/Services/AWSSynthetics/Paginators.swift +++ b/Sources/Services/AWSSynthetics/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeCanariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCanariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCanariesOutputResponse` extension SyntheticsClient { + /// Paginate over `[DescribeCanariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCanariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCanariesOutputResponse` public func describeCanariesPaginated(input: DescribeCanariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCanariesInput.nextToken, outputKey: \DescribeCanariesOutputResponse.nextToken, paginationFunction: self.describeCanaries(input:)) } @@ -25,16 +24,15 @@ extension DescribeCanariesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeCanariesLastRunOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeCanariesLastRunInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeCanariesLastRunOutputResponse` extension SyntheticsClient { + /// Paginate over `[DescribeCanariesLastRunOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeCanariesLastRunInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeCanariesLastRunOutputResponse` public func describeCanariesLastRunPaginated(input: DescribeCanariesLastRunInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeCanariesLastRunInput.nextToken, outputKey: \DescribeCanariesLastRunOutputResponse.nextToken, paginationFunction: self.describeCanariesLastRun(input:)) } @@ -48,16 +46,15 @@ extension DescribeCanariesLastRunInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[DescribeRuntimeVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeRuntimeVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeRuntimeVersionsOutputResponse` extension SyntheticsClient { + /// Paginate over `[DescribeRuntimeVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeRuntimeVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeRuntimeVersionsOutputResponse` public func describeRuntimeVersionsPaginated(input: DescribeRuntimeVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeRuntimeVersionsInput.nextToken, outputKey: \DescribeRuntimeVersionsOutputResponse.nextToken, paginationFunction: self.describeRuntimeVersions(input:)) } @@ -70,16 +67,15 @@ extension DescribeRuntimeVersionsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetCanaryRunsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetCanaryRunsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetCanaryRunsOutputResponse` extension SyntheticsClient { + /// Paginate over `[GetCanaryRunsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetCanaryRunsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetCanaryRunsOutputResponse` public func getCanaryRunsPaginated(input: GetCanaryRunsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetCanaryRunsInput.nextToken, outputKey: \GetCanaryRunsOutputResponse.nextToken, paginationFunction: self.getCanaryRuns(input:)) } @@ -93,16 +89,15 @@ extension GetCanaryRunsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListAssociatedGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAssociatedGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedGroupsOutputResponse` extension SyntheticsClient { + /// Paginate over `[ListAssociatedGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAssociatedGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAssociatedGroupsOutputResponse` public func listAssociatedGroupsPaginated(input: ListAssociatedGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAssociatedGroupsInput.nextToken, outputKey: \ListAssociatedGroupsOutputResponse.nextToken, paginationFunction: self.listAssociatedGroups(input:)) } @@ -116,16 +111,15 @@ extension ListAssociatedGroupsInput: ClientRuntime.PaginateToken { resourceArn: self.resourceArn )} } - -/// Paginate over `[ListGroupResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupResourcesOutputResponse` extension SyntheticsClient { + /// Paginate over `[ListGroupResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupResourcesOutputResponse` public func listGroupResourcesPaginated(input: ListGroupResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupResourcesInput.nextToken, outputKey: \ListGroupResourcesOutputResponse.nextToken, paginationFunction: self.listGroupResources(input:)) } @@ -139,16 +133,15 @@ extension ListGroupResourcesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` extension SyntheticsClient { + /// Paginate over `[ListGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` public func listGroupsPaginated(input: ListGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsInput.nextToken, outputKey: \ListGroupsOutputResponse.nextToken, paginationFunction: self.listGroups(input:)) } diff --git a/Sources/Services/AWSTimestreamQuery/Paginators.swift b/Sources/Services/AWSTimestreamQuery/Paginators.swift index e45cd6c71fb..a5dbef69a80 100644 --- a/Sources/Services/AWSTimestreamQuery/Paginators.swift +++ b/Sources/Services/AWSTimestreamQuery/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListScheduledQueriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListScheduledQueriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListScheduledQueriesOutputResponse` extension TimestreamQueryClient { + /// Paginate over `[ListScheduledQueriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListScheduledQueriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListScheduledQueriesOutputResponse` public func listScheduledQueriesPaginated(input: ListScheduledQueriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListScheduledQueriesInput.nextToken, outputKey: \ListScheduledQueriesOutputResponse.nextToken, paginationFunction: self.listScheduledQueries(input:)) } @@ -24,16 +23,15 @@ extension ListScheduledQueriesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension TimestreamQueryClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -47,16 +45,15 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { resourceARN: self.resourceARN )} } - -/// Paginate over `[QueryOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[QueryInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `QueryOutputResponse` extension TimestreamQueryClient { + /// Paginate over `[QueryOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[QueryInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `QueryOutputResponse` public func queryPaginated(input: QueryInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \QueryInput.nextToken, outputKey: \QueryOutputResponse.nextToken, paginationFunction: self.query(input:)) } @@ -72,10 +69,10 @@ extension QueryInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `queryPaginated` -/// to access the nested member `[TimestreamQueryClientTypes.Row]` -/// - Returns: `[TimestreamQueryClientTypes.Row]` extension PaginatorSequence where Input == QueryInput, Output == QueryOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `queryPaginated` + /// to access the nested member `[TimestreamQueryClientTypes.Row]` + /// - Returns: `[TimestreamQueryClientTypes.Row]` public func rows() async throws -> [TimestreamQueryClientTypes.Row] { return try await self.asyncCompactMap { item in item.rows } } diff --git a/Sources/Services/AWSTimestreamWrite/Paginators.swift b/Sources/Services/AWSTimestreamWrite/Paginators.swift index 8886d04c326..7d00c26f5de 100644 --- a/Sources/Services/AWSTimestreamWrite/Paginators.swift +++ b/Sources/Services/AWSTimestreamWrite/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDatabasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDatabasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` extension TimestreamWriteClient { + /// Paginate over `[ListDatabasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDatabasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDatabasesOutputResponse` public func listDatabasesPaginated(input: ListDatabasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDatabasesInput.nextToken, outputKey: \ListDatabasesOutputResponse.nextToken, paginationFunction: self.listDatabases(input:)) } @@ -24,16 +23,15 @@ extension ListDatabasesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTablesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTablesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` extension TimestreamWriteClient { + /// Paginate over `[ListTablesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTablesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTablesOutputResponse` public func listTablesPaginated(input: ListTablesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTablesInput.nextToken, outputKey: \ListTablesOutputResponse.nextToken, paginationFunction: self.listTables(input:)) } diff --git a/Sources/Services/AWSTranscribe/Paginators.swift b/Sources/Services/AWSTranscribe/Paginators.swift index 52d93f62020..2cfc2897264 100644 --- a/Sources/Services/AWSTranscribe/Paginators.swift +++ b/Sources/Services/AWSTranscribe/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListCallAnalyticsCategoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCallAnalyticsCategoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCallAnalyticsCategoriesOutputResponse` extension TranscribeClient { + /// Paginate over `[ListCallAnalyticsCategoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCallAnalyticsCategoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCallAnalyticsCategoriesOutputResponse` public func listCallAnalyticsCategoriesPaginated(input: ListCallAnalyticsCategoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCallAnalyticsCategoriesInput.nextToken, outputKey: \ListCallAnalyticsCategoriesOutputResponse.nextToken, paginationFunction: self.listCallAnalyticsCategories(input:)) } @@ -24,16 +23,15 @@ extension ListCallAnalyticsCategoriesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListCallAnalyticsJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCallAnalyticsJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCallAnalyticsJobsOutputResponse` extension TranscribeClient { + /// Paginate over `[ListCallAnalyticsJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCallAnalyticsJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCallAnalyticsJobsOutputResponse` public func listCallAnalyticsJobsPaginated(input: ListCallAnalyticsJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCallAnalyticsJobsInput.nextToken, outputKey: \ListCallAnalyticsJobsOutputResponse.nextToken, paginationFunction: self.listCallAnalyticsJobs(input:)) } @@ -48,16 +46,15 @@ extension ListCallAnalyticsJobsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListLanguageModelsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLanguageModelsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLanguageModelsOutputResponse` extension TranscribeClient { + /// Paginate over `[ListLanguageModelsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLanguageModelsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLanguageModelsOutputResponse` public func listLanguageModelsPaginated(input: ListLanguageModelsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLanguageModelsInput.nextToken, outputKey: \ListLanguageModelsOutputResponse.nextToken, paginationFunction: self.listLanguageModels(input:)) } @@ -72,16 +69,15 @@ extension ListLanguageModelsInput: ClientRuntime.PaginateToken { statusEquals: self.statusEquals )} } - -/// Paginate over `[ListMedicalTranscriptionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMedicalTranscriptionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMedicalTranscriptionJobsOutputResponse` extension TranscribeClient { + /// Paginate over `[ListMedicalTranscriptionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMedicalTranscriptionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMedicalTranscriptionJobsOutputResponse` public func listMedicalTranscriptionJobsPaginated(input: ListMedicalTranscriptionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMedicalTranscriptionJobsInput.nextToken, outputKey: \ListMedicalTranscriptionJobsOutputResponse.nextToken, paginationFunction: self.listMedicalTranscriptionJobs(input:)) } @@ -96,16 +92,15 @@ extension ListMedicalTranscriptionJobsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListMedicalVocabulariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMedicalVocabulariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMedicalVocabulariesOutputResponse` extension TranscribeClient { + /// Paginate over `[ListMedicalVocabulariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMedicalVocabulariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMedicalVocabulariesOutputResponse` public func listMedicalVocabulariesPaginated(input: ListMedicalVocabulariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMedicalVocabulariesInput.nextToken, outputKey: \ListMedicalVocabulariesOutputResponse.nextToken, paginationFunction: self.listMedicalVocabularies(input:)) } @@ -120,16 +115,15 @@ extension ListMedicalVocabulariesInput: ClientRuntime.PaginateToken { stateEquals: self.stateEquals )} } - -/// Paginate over `[ListTranscriptionJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTranscriptionJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTranscriptionJobsOutputResponse` extension TranscribeClient { + /// Paginate over `[ListTranscriptionJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTranscriptionJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTranscriptionJobsOutputResponse` public func listTranscriptionJobsPaginated(input: ListTranscriptionJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTranscriptionJobsInput.nextToken, outputKey: \ListTranscriptionJobsOutputResponse.nextToken, paginationFunction: self.listTranscriptionJobs(input:)) } @@ -144,16 +138,15 @@ extension ListTranscriptionJobsInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListVocabulariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVocabulariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVocabulariesOutputResponse` extension TranscribeClient { + /// Paginate over `[ListVocabulariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVocabulariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVocabulariesOutputResponse` public func listVocabulariesPaginated(input: ListVocabulariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVocabulariesInput.nextToken, outputKey: \ListVocabulariesOutputResponse.nextToken, paginationFunction: self.listVocabularies(input:)) } @@ -168,16 +161,15 @@ extension ListVocabulariesInput: ClientRuntime.PaginateToken { stateEquals: self.stateEquals )} } - -/// Paginate over `[ListVocabularyFiltersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListVocabularyFiltersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListVocabularyFiltersOutputResponse` extension TranscribeClient { + /// Paginate over `[ListVocabularyFiltersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVocabularyFiltersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVocabularyFiltersOutputResponse` public func listVocabularyFiltersPaginated(input: ListVocabularyFiltersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListVocabularyFiltersInput.nextToken, outputKey: \ListVocabularyFiltersOutputResponse.nextToken, paginationFunction: self.listVocabularyFilters(input:)) } diff --git a/Sources/Services/AWSTransfer/Paginators.swift b/Sources/Services/AWSTransfer/Paginators.swift index dec60b7d412..103ffec2241 100644 --- a/Sources/Services/AWSTransfer/Paginators.swift +++ b/Sources/Services/AWSTransfer/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAccessesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAccessesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAccessesOutputResponse` extension TransferClient { + /// Paginate over `[ListAccessesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAccessesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAccessesOutputResponse` public func listAccessesPaginated(input: ListAccessesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAccessesInput.nextToken, outputKey: \ListAccessesOutputResponse.nextToken, paginationFunction: self.listAccesses(input:)) } @@ -26,24 +25,23 @@ extension ListAccessesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAccessesPaginated` -/// to access the nested member `[TransferClientTypes.ListedAccess]` -/// - Returns: `[TransferClientTypes.ListedAccess]` extension PaginatorSequence where Input == ListAccessesInput, Output == ListAccessesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAccessesPaginated` + /// to access the nested member `[TransferClientTypes.ListedAccess]` + /// - Returns: `[TransferClientTypes.ListedAccess]` public func accesses() async throws -> [TransferClientTypes.ListedAccess] { return try await self.asyncCompactMap { item in item.accesses } } } - -/// Paginate over `[ListAgreementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAgreementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAgreementsOutputResponse` extension TransferClient { + /// Paginate over `[ListAgreementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAgreementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAgreementsOutputResponse` public func listAgreementsPaginated(input: ListAgreementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAgreementsInput.nextToken, outputKey: \ListAgreementsOutputResponse.nextToken, paginationFunction: self.listAgreements(input:)) } @@ -58,24 +56,23 @@ extension ListAgreementsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAgreementsPaginated` -/// to access the nested member `[TransferClientTypes.ListedAgreement]` -/// - Returns: `[TransferClientTypes.ListedAgreement]` extension PaginatorSequence where Input == ListAgreementsInput, Output == ListAgreementsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAgreementsPaginated` + /// to access the nested member `[TransferClientTypes.ListedAgreement]` + /// - Returns: `[TransferClientTypes.ListedAgreement]` public func agreements() async throws -> [TransferClientTypes.ListedAgreement] { return try await self.asyncCompactMap { item in item.agreements } } } - -/// Paginate over `[ListCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` extension TransferClient { + /// Paginate over `[ListCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCertificatesOutputResponse` public func listCertificatesPaginated(input: ListCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCertificatesInput.nextToken, outputKey: \ListCertificatesOutputResponse.nextToken, paginationFunction: self.listCertificates(input:)) } @@ -89,24 +86,23 @@ extension ListCertificatesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` -/// to access the nested member `[TransferClientTypes.ListedCertificate]` -/// - Returns: `[TransferClientTypes.ListedCertificate]` extension PaginatorSequence where Input == ListCertificatesInput, Output == ListCertificatesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCertificatesPaginated` + /// to access the nested member `[TransferClientTypes.ListedCertificate]` + /// - Returns: `[TransferClientTypes.ListedCertificate]` public func certificates() async throws -> [TransferClientTypes.ListedCertificate] { return try await self.asyncCompactMap { item in item.certificates } } } - -/// Paginate over `[ListConnectorsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListConnectorsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` extension TransferClient { + /// Paginate over `[ListConnectorsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListConnectorsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectorsOutputResponse` public func listConnectorsPaginated(input: ListConnectorsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListConnectorsInput.nextToken, outputKey: \ListConnectorsOutputResponse.nextToken, paginationFunction: self.listConnectors(input:)) } @@ -120,24 +116,23 @@ extension ListConnectorsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listConnectorsPaginated` -/// to access the nested member `[TransferClientTypes.ListedConnector]` -/// - Returns: `[TransferClientTypes.ListedConnector]` extension PaginatorSequence where Input == ListConnectorsInput, Output == ListConnectorsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listConnectorsPaginated` + /// to access the nested member `[TransferClientTypes.ListedConnector]` + /// - Returns: `[TransferClientTypes.ListedConnector]` public func connectors() async throws -> [TransferClientTypes.ListedConnector] { return try await self.asyncCompactMap { item in item.connectors } } } - -/// Paginate over `[ListExecutionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListExecutionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListExecutionsOutputResponse` extension TransferClient { + /// Paginate over `[ListExecutionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListExecutionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListExecutionsOutputResponse` public func listExecutionsPaginated(input: ListExecutionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListExecutionsInput.nextToken, outputKey: \ListExecutionsOutputResponse.nextToken, paginationFunction: self.listExecutions(input:)) } @@ -152,24 +147,23 @@ extension ListExecutionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listExecutionsPaginated` -/// to access the nested member `[TransferClientTypes.ListedExecution]` -/// - Returns: `[TransferClientTypes.ListedExecution]` extension PaginatorSequence where Input == ListExecutionsInput, Output == ListExecutionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listExecutionsPaginated` + /// to access the nested member `[TransferClientTypes.ListedExecution]` + /// - Returns: `[TransferClientTypes.ListedExecution]` public func executions() async throws -> [TransferClientTypes.ListedExecution] { return try await self.asyncCompactMap { item in item.executions } } } - -/// Paginate over `[ListProfilesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListProfilesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListProfilesOutputResponse` extension TransferClient { + /// Paginate over `[ListProfilesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListProfilesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListProfilesOutputResponse` public func listProfilesPaginated(input: ListProfilesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListProfilesInput.nextToken, outputKey: \ListProfilesOutputResponse.nextToken, paginationFunction: self.listProfiles(input:)) } @@ -184,24 +178,23 @@ extension ListProfilesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listProfilesPaginated` -/// to access the nested member `[TransferClientTypes.ListedProfile]` -/// - Returns: `[TransferClientTypes.ListedProfile]` extension PaginatorSequence where Input == ListProfilesInput, Output == ListProfilesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listProfilesPaginated` + /// to access the nested member `[TransferClientTypes.ListedProfile]` + /// - Returns: `[TransferClientTypes.ListedProfile]` public func profiles() async throws -> [TransferClientTypes.ListedProfile] { return try await self.asyncCompactMap { item in item.profiles } } } - -/// Paginate over `[ListSecurityPoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSecurityPoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSecurityPoliciesOutputResponse` extension TransferClient { + /// Paginate over `[ListSecurityPoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSecurityPoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSecurityPoliciesOutputResponse` public func listSecurityPoliciesPaginated(input: ListSecurityPoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSecurityPoliciesInput.nextToken, outputKey: \ListSecurityPoliciesOutputResponse.nextToken, paginationFunction: self.listSecurityPolicies(input:)) } @@ -215,24 +208,23 @@ extension ListSecurityPoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSecurityPoliciesPaginated` -/// to access the nested member `[Swift.String]` -/// - Returns: `[Swift.String]` extension PaginatorSequence where Input == ListSecurityPoliciesInput, Output == ListSecurityPoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSecurityPoliciesPaginated` + /// to access the nested member `[Swift.String]` + /// - Returns: `[Swift.String]` public func securityPolicyNames() async throws -> [Swift.String] { return try await self.asyncCompactMap { item in item.securityPolicyNames } } } - -/// Paginate over `[ListServersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListServersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListServersOutputResponse` extension TransferClient { + /// Paginate over `[ListServersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListServersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListServersOutputResponse` public func listServersPaginated(input: ListServersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListServersInput.nextToken, outputKey: \ListServersOutputResponse.nextToken, paginationFunction: self.listServers(input:)) } @@ -246,24 +238,23 @@ extension ListServersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listServersPaginated` -/// to access the nested member `[TransferClientTypes.ListedServer]` -/// - Returns: `[TransferClientTypes.ListedServer]` extension PaginatorSequence where Input == ListServersInput, Output == ListServersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listServersPaginated` + /// to access the nested member `[TransferClientTypes.ListedServer]` + /// - Returns: `[TransferClientTypes.ListedServer]` public func servers() async throws -> [TransferClientTypes.ListedServer] { return try await self.asyncCompactMap { item in item.servers } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension TransferClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -278,24 +269,23 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[TransferClientTypes.Tag]` -/// - Returns: `[TransferClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[TransferClientTypes.Tag]` + /// - Returns: `[TransferClientTypes.Tag]` public func tags() async throws -> [TransferClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension TransferClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.nextToken, outputKey: \ListUsersOutputResponse.nextToken, paginationFunction: self.listUsers(input:)) } @@ -310,24 +300,23 @@ extension ListUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` -/// to access the nested member `[TransferClientTypes.ListedUser]` -/// - Returns: `[TransferClientTypes.ListedUser]` extension PaginatorSequence where Input == ListUsersInput, Output == ListUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listUsersPaginated` + /// to access the nested member `[TransferClientTypes.ListedUser]` + /// - Returns: `[TransferClientTypes.ListedUser]` public func users() async throws -> [TransferClientTypes.ListedUser] { return try await self.asyncCompactMap { item in item.users } } } - -/// Paginate over `[ListWorkflowsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkflowsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowsOutputResponse` extension TransferClient { + /// Paginate over `[ListWorkflowsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkflowsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkflowsOutputResponse` public func listWorkflowsPaginated(input: ListWorkflowsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkflowsInput.nextToken, outputKey: \ListWorkflowsOutputResponse.nextToken, paginationFunction: self.listWorkflows(input:)) } @@ -341,10 +330,10 @@ extension ListWorkflowsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listWorkflowsPaginated` -/// to access the nested member `[TransferClientTypes.ListedWorkflow]` -/// - Returns: `[TransferClientTypes.ListedWorkflow]` extension PaginatorSequence where Input == ListWorkflowsInput, Output == ListWorkflowsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listWorkflowsPaginated` + /// to access the nested member `[TransferClientTypes.ListedWorkflow]` + /// - Returns: `[TransferClientTypes.ListedWorkflow]` public func workflows() async throws -> [TransferClientTypes.ListedWorkflow] { return try await self.asyncCompactMap { item in item.workflows } } diff --git a/Sources/Services/AWSTranslate/Paginators.swift b/Sources/Services/AWSTranslate/Paginators.swift index b9f2e0b20ca..4b732cf8ca6 100644 --- a/Sources/Services/AWSTranslate/Paginators.swift +++ b/Sources/Services/AWSTranslate/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListLanguagesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLanguagesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLanguagesOutputResponse` extension TranslateClient { + /// Paginate over `[ListLanguagesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLanguagesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLanguagesOutputResponse` public func listLanguagesPaginated(input: ListLanguagesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLanguagesInput.nextToken, outputKey: \ListLanguagesOutputResponse.nextToken, paginationFunction: self.listLanguages(input:)) } @@ -25,16 +24,15 @@ extension ListLanguagesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListParallelDataOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListParallelDataInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListParallelDataOutputResponse` extension TranslateClient { + /// Paginate over `[ListParallelDataOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListParallelDataInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListParallelDataOutputResponse` public func listParallelDataPaginated(input: ListParallelDataInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListParallelDataInput.nextToken, outputKey: \ListParallelDataOutputResponse.nextToken, paginationFunction: self.listParallelData(input:)) } @@ -47,16 +45,15 @@ extension ListParallelDataInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTerminologiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTerminologiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTerminologiesOutputResponse` extension TranslateClient { + /// Paginate over `[ListTerminologiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTerminologiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTerminologiesOutputResponse` public func listTerminologiesPaginated(input: ListTerminologiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTerminologiesInput.nextToken, outputKey: \ListTerminologiesOutputResponse.nextToken, paginationFunction: self.listTerminologies(input:)) } @@ -69,16 +66,15 @@ extension ListTerminologiesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTextTranslationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTextTranslationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTextTranslationJobsOutputResponse` extension TranslateClient { + /// Paginate over `[ListTextTranslationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTextTranslationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTextTranslationJobsOutputResponse` public func listTextTranslationJobsPaginated(input: ListTextTranslationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTextTranslationJobsInput.nextToken, outputKey: \ListTextTranslationJobsOutputResponse.nextToken, paginationFunction: self.listTextTranslationJobs(input:)) } diff --git a/Sources/Services/AWSVoiceID/Paginators.swift b/Sources/Services/AWSVoiceID/Paginators.swift index 1688c473881..0f102fd2b6c 100644 --- a/Sources/Services/AWSVoiceID/Paginators.swift +++ b/Sources/Services/AWSVoiceID/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListFraudsterRegistrationJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFraudsterRegistrationJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFraudsterRegistrationJobsOutputResponse` extension VoiceIDClient { + /// Paginate over `[ListFraudsterRegistrationJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFraudsterRegistrationJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFraudsterRegistrationJobsOutputResponse` public func listFraudsterRegistrationJobsPaginated(input: ListFraudsterRegistrationJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFraudsterRegistrationJobsInput.nextToken, outputKey: \ListFraudsterRegistrationJobsOutputResponse.nextToken, paginationFunction: self.listFraudsterRegistrationJobs(input:)) } @@ -27,24 +26,23 @@ extension ListFraudsterRegistrationJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listFraudsterRegistrationJobsPaginated` -/// to access the nested member `[VoiceIDClientTypes.FraudsterRegistrationJobSummary]` -/// - Returns: `[VoiceIDClientTypes.FraudsterRegistrationJobSummary]` extension PaginatorSequence where Input == ListFraudsterRegistrationJobsInput, Output == ListFraudsterRegistrationJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listFraudsterRegistrationJobsPaginated` + /// to access the nested member `[VoiceIDClientTypes.FraudsterRegistrationJobSummary]` + /// - Returns: `[VoiceIDClientTypes.FraudsterRegistrationJobSummary]` public func jobSummaries() async throws -> [VoiceIDClientTypes.FraudsterRegistrationJobSummary] { return try await self.asyncCompactMap { item in item.jobSummaries } } } - -/// Paginate over `[ListSpeakerEnrollmentJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSpeakerEnrollmentJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSpeakerEnrollmentJobsOutputResponse` extension VoiceIDClient { + /// Paginate over `[ListSpeakerEnrollmentJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSpeakerEnrollmentJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSpeakerEnrollmentJobsOutputResponse` public func listSpeakerEnrollmentJobsPaginated(input: ListSpeakerEnrollmentJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSpeakerEnrollmentJobsInput.nextToken, outputKey: \ListSpeakerEnrollmentJobsOutputResponse.nextToken, paginationFunction: self.listSpeakerEnrollmentJobs(input:)) } @@ -60,24 +58,23 @@ extension ListSpeakerEnrollmentJobsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSpeakerEnrollmentJobsPaginated` -/// to access the nested member `[VoiceIDClientTypes.SpeakerEnrollmentJobSummary]` -/// - Returns: `[VoiceIDClientTypes.SpeakerEnrollmentJobSummary]` extension PaginatorSequence where Input == ListSpeakerEnrollmentJobsInput, Output == ListSpeakerEnrollmentJobsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSpeakerEnrollmentJobsPaginated` + /// to access the nested member `[VoiceIDClientTypes.SpeakerEnrollmentJobSummary]` + /// - Returns: `[VoiceIDClientTypes.SpeakerEnrollmentJobSummary]` public func jobSummaries() async throws -> [VoiceIDClientTypes.SpeakerEnrollmentJobSummary] { return try await self.asyncCompactMap { item in item.jobSummaries } } } - -/// Paginate over `[ListSpeakersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListSpeakersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListSpeakersOutputResponse` extension VoiceIDClient { + /// Paginate over `[ListSpeakersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListSpeakersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSpeakersOutputResponse` public func listSpeakersPaginated(input: ListSpeakersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListSpeakersInput.nextToken, outputKey: \ListSpeakersOutputResponse.nextToken, paginationFunction: self.listSpeakers(input:)) } @@ -92,10 +89,10 @@ extension ListSpeakersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listSpeakersPaginated` -/// to access the nested member `[VoiceIDClientTypes.SpeakerSummary]` -/// - Returns: `[VoiceIDClientTypes.SpeakerSummary]` extension PaginatorSequence where Input == ListSpeakersInput, Output == ListSpeakersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSpeakersPaginated` + /// to access the nested member `[VoiceIDClientTypes.SpeakerSummary]` + /// - Returns: `[VoiceIDClientTypes.SpeakerSummary]` public func speakerSummaries() async throws -> [VoiceIDClientTypes.SpeakerSummary] { return try await self.asyncCompactMap { item in item.speakerSummaries } } diff --git a/Sources/Services/AWSWAF/EndpointResolver.swift b/Sources/Services/AWSWAF/EndpointResolver.swift index 67456e012a5..746527feaed 100644 --- a/Sources/Services/AWSWAF/EndpointResolver.swift +++ b/Sources/Services/AWSWAF/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws\"]}],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://waf.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"signingRegion\":\"us-east-1\",\"name\":\"sigv4\",\"signingName\":\"waf\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"name\"]},\"aws\"]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.api.aws\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws\"]}],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://waf-fips.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"stringEquals\",\"argv\":[{\"ref\":\"Region\"},\"aws-global\"]}],\"endpoint\":{\"url\":\"https://waf.amazonaws.com\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingName\":\"waf\",\"signingRegion\":\"us-east-1\"}]},\"headers\":{}},\"type\":\"endpoint\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://waf.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSWellArchitected/Paginators.swift b/Sources/Services/AWSWellArchitected/Paginators.swift index fba1abe5292..bbf737c1723 100644 --- a/Sources/Services/AWSWellArchitected/Paginators.swift +++ b/Sources/Services/AWSWellArchitected/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAnswersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAnswersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAnswersOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListAnswersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAnswersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAnswersOutputResponse` public func listAnswersPaginated(input: ListAnswersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAnswersInput.nextToken, outputKey: \ListAnswersOutputResponse.nextToken, paginationFunction: self.listAnswers(input:)) } @@ -28,16 +27,15 @@ extension ListAnswersInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListCheckDetailsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCheckDetailsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCheckDetailsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListCheckDetailsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCheckDetailsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCheckDetailsOutputResponse` public func listCheckDetailsPaginated(input: ListCheckDetailsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCheckDetailsInput.nextToken, outputKey: \ListCheckDetailsOutputResponse.nextToken, paginationFunction: self.listCheckDetails(input:)) } @@ -55,16 +53,15 @@ extension ListCheckDetailsInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListCheckSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListCheckSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListCheckSummariesOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListCheckSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListCheckSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListCheckSummariesOutputResponse` public func listCheckSummariesPaginated(input: ListCheckSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListCheckSummariesInput.nextToken, outputKey: \ListCheckSummariesOutputResponse.nextToken, paginationFunction: self.listCheckSummaries(input:)) } @@ -82,16 +79,15 @@ extension ListCheckSummariesInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListLensesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLensesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLensesOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListLensesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLensesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLensesOutputResponse` public func listLensesPaginated(input: ListLensesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLensesInput.nextToken, outputKey: \ListLensesOutputResponse.nextToken, paginationFunction: self.listLenses(input:)) } @@ -107,16 +103,15 @@ extension ListLensesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListLensReviewImprovementsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLensReviewImprovementsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLensReviewImprovementsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListLensReviewImprovementsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLensReviewImprovementsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLensReviewImprovementsOutputResponse` public func listLensReviewImprovementsPaginated(input: ListLensReviewImprovementsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLensReviewImprovementsInput.nextToken, outputKey: \ListLensReviewImprovementsOutputResponse.nextToken, paginationFunction: self.listLensReviewImprovements(input:)) } @@ -133,16 +128,15 @@ extension ListLensReviewImprovementsInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListLensReviewsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLensReviewsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLensReviewsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListLensReviewsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLensReviewsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLensReviewsOutputResponse` public func listLensReviewsPaginated(input: ListLensReviewsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLensReviewsInput.nextToken, outputKey: \ListLensReviewsOutputResponse.nextToken, paginationFunction: self.listLensReviews(input:)) } @@ -157,16 +151,15 @@ extension ListLensReviewsInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListLensSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListLensSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListLensSharesOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListLensSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListLensSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListLensSharesOutputResponse` public func listLensSharesPaginated(input: ListLensSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListLensSharesInput.nextToken, outputKey: \ListLensSharesOutputResponse.nextToken, paginationFunction: self.listLensShares(input:)) } @@ -182,16 +175,15 @@ extension ListLensSharesInput: ClientRuntime.PaginateToken { status: self.status )} } - -/// Paginate over `[ListMilestonesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMilestonesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMilestonesOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListMilestonesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMilestonesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMilestonesOutputResponse` public func listMilestonesPaginated(input: ListMilestonesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMilestonesInput.nextToken, outputKey: \ListMilestonesOutputResponse.nextToken, paginationFunction: self.listMilestones(input:)) } @@ -205,16 +197,15 @@ extension ListMilestonesInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListNotificationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNotificationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNotificationsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListNotificationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNotificationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotificationsOutputResponse` public func listNotificationsPaginated(input: ListNotificationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNotificationsInput.nextToken, outputKey: \ListNotificationsOutputResponse.nextToken, paginationFunction: self.listNotifications(input:)) } @@ -228,16 +219,15 @@ extension ListNotificationsInput: ClientRuntime.PaginateToken { workloadId: self.workloadId )} } - -/// Paginate over `[ListShareInvitationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListShareInvitationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListShareInvitationsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListShareInvitationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListShareInvitationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListShareInvitationsOutputResponse` public func listShareInvitationsPaginated(input: ListShareInvitationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListShareInvitationsInput.nextToken, outputKey: \ListShareInvitationsOutputResponse.nextToken, paginationFunction: self.listShareInvitations(input:)) } @@ -253,16 +243,15 @@ extension ListShareInvitationsInput: ClientRuntime.PaginateToken { workloadNamePrefix: self.workloadNamePrefix )} } - -/// Paginate over `[ListWorkloadsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkloadsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkloadsOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListWorkloadsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkloadsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkloadsOutputResponse` public func listWorkloadsPaginated(input: ListWorkloadsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkloadsInput.nextToken, outputKey: \ListWorkloadsOutputResponse.nextToken, paginationFunction: self.listWorkloads(input:)) } @@ -276,16 +265,15 @@ extension ListWorkloadsInput: ClientRuntime.PaginateToken { workloadNamePrefix: self.workloadNamePrefix )} } - -/// Paginate over `[ListWorkloadSharesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWorkloadSharesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWorkloadSharesOutputResponse` extension WellArchitectedClient { + /// Paginate over `[ListWorkloadSharesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWorkloadSharesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWorkloadSharesOutputResponse` public func listWorkloadSharesPaginated(input: ListWorkloadSharesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWorkloadSharesInput.nextToken, outputKey: \ListWorkloadSharesOutputResponse.nextToken, paginationFunction: self.listWorkloadShares(input:)) } diff --git a/Sources/Services/AWSWorkDocs/Paginators.swift b/Sources/Services/AWSWorkDocs/Paginators.swift index 0d9b1502a48..27993790820 100644 --- a/Sources/Services/AWSWorkDocs/Paginators.swift +++ b/Sources/Services/AWSWorkDocs/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeDocumentVersionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeDocumentVersionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeDocumentVersionsOutputResponse` extension WorkDocsClient { + /// Paginate over `[DescribeDocumentVersionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeDocumentVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeDocumentVersionsOutputResponse` public func describeDocumentVersionsPaginated(input: DescribeDocumentVersionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeDocumentVersionsInput.marker, outputKey: \DescribeDocumentVersionsOutputResponse.marker, paginationFunction: self.describeDocumentVersions(input:)) } @@ -29,24 +28,23 @@ extension DescribeDocumentVersionsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeDocumentVersionsPaginated` -/// to access the nested member `[WorkDocsClientTypes.DocumentVersionMetadata]` -/// - Returns: `[WorkDocsClientTypes.DocumentVersionMetadata]` extension PaginatorSequence where Input == DescribeDocumentVersionsInput, Output == DescribeDocumentVersionsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeDocumentVersionsPaginated` + /// to access the nested member `[WorkDocsClientTypes.DocumentVersionMetadata]` + /// - Returns: `[WorkDocsClientTypes.DocumentVersionMetadata]` public func documentVersions() async throws -> [WorkDocsClientTypes.DocumentVersionMetadata] { return try await self.asyncCompactMap { item in item.documentVersions } } } - -/// Paginate over `[DescribeFolderContentsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeFolderContentsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeFolderContentsOutputResponse` extension WorkDocsClient { + /// Paginate over `[DescribeFolderContentsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeFolderContentsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeFolderContentsOutputResponse` public func describeFolderContentsPaginated(input: DescribeFolderContentsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeFolderContentsInput.marker, outputKey: \DescribeFolderContentsOutputResponse.marker, paginationFunction: self.describeFolderContents(input:)) } @@ -65,16 +63,15 @@ extension DescribeFolderContentsInput: ClientRuntime.PaginateToken { type: self.type )} } - -/// Paginate over `[DescribeUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` extension WorkDocsClient { + /// Paginate over `[DescribeUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeUsersOutputResponse` public func describeUsersPaginated(input: DescribeUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeUsersInput.marker, outputKey: \DescribeUsersOutputResponse.marker, paginationFunction: self.describeUsers(input:)) } @@ -96,10 +93,10 @@ extension DescribeUsersInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` -/// to access the nested member `[WorkDocsClientTypes.User]` -/// - Returns: `[WorkDocsClientTypes.User]` extension PaginatorSequence where Input == DescribeUsersInput, Output == DescribeUsersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeUsersPaginated` + /// to access the nested member `[WorkDocsClientTypes.User]` + /// - Returns: `[WorkDocsClientTypes.User]` public func users() async throws -> [WorkDocsClientTypes.User] { return try await self.asyncCompactMap { item in item.users } } diff --git a/Sources/Services/AWSWorkLink/Paginators.swift b/Sources/Services/AWSWorkLink/Paginators.swift index a7116b64b4a..d8398ce692c 100644 --- a/Sources/Services/AWSWorkLink/Paginators.swift +++ b/Sources/Services/AWSWorkLink/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListDevicesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDevicesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` extension WorkLinkClient { + /// Paginate over `[ListDevicesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDevicesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDevicesOutputResponse` public func listDevicesPaginated(input: ListDevicesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDevicesInput.nextToken, outputKey: \ListDevicesOutputResponse.nextToken, paginationFunction: self.listDevices(input:)) } @@ -25,16 +24,15 @@ extension ListDevicesInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` extension WorkLinkClient { + /// Paginate over `[ListDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListDomainsOutputResponse` public func listDomainsPaginated(input: ListDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListDomainsInput.nextToken, outputKey: \ListDomainsOutputResponse.nextToken, paginationFunction: self.listDomains(input:)) } @@ -48,16 +46,15 @@ extension ListDomainsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListFleetsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListFleetsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` extension WorkLinkClient { + /// Paginate over `[ListFleetsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListFleetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListFleetsOutputResponse` public func listFleetsPaginated(input: ListFleetsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListFleetsInput.nextToken, outputKey: \ListFleetsOutputResponse.nextToken, paginationFunction: self.listFleets(input:)) } @@ -70,16 +67,15 @@ extension ListFleetsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWebsiteAuthorizationProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWebsiteAuthorizationProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWebsiteAuthorizationProvidersOutputResponse` extension WorkLinkClient { + /// Paginate over `[ListWebsiteAuthorizationProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWebsiteAuthorizationProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWebsiteAuthorizationProvidersOutputResponse` public func listWebsiteAuthorizationProvidersPaginated(input: ListWebsiteAuthorizationProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWebsiteAuthorizationProvidersInput.nextToken, outputKey: \ListWebsiteAuthorizationProvidersOutputResponse.nextToken, paginationFunction: self.listWebsiteAuthorizationProviders(input:)) } @@ -93,16 +89,15 @@ extension ListWebsiteAuthorizationProvidersInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListWebsiteCertificateAuthoritiesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListWebsiteCertificateAuthoritiesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListWebsiteCertificateAuthoritiesOutputResponse` extension WorkLinkClient { + /// Paginate over `[ListWebsiteCertificateAuthoritiesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListWebsiteCertificateAuthoritiesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListWebsiteCertificateAuthoritiesOutputResponse` public func listWebsiteCertificateAuthoritiesPaginated(input: ListWebsiteCertificateAuthoritiesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListWebsiteCertificateAuthoritiesInput.nextToken, outputKey: \ListWebsiteCertificateAuthoritiesOutputResponse.nextToken, paginationFunction: self.listWebsiteCertificateAuthorities(input:)) } diff --git a/Sources/Services/AWSWorkMail/Paginators.swift b/Sources/Services/AWSWorkMail/Paginators.swift index eaf1f31c40c..aa84333f0ab 100644 --- a/Sources/Services/AWSWorkMail/Paginators.swift +++ b/Sources/Services/AWSWorkMail/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListAliasesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAliasesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` extension WorkMailClient { + /// Paginate over `[ListAliasesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAliasesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAliasesOutputResponse` public func listAliasesPaginated(input: ListAliasesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAliasesInput.nextToken, outputKey: \ListAliasesOutputResponse.nextToken, paginationFunction: self.listAliases(input:)) } @@ -26,16 +25,15 @@ extension ListAliasesInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListAvailabilityConfigurationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListAvailabilityConfigurationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListAvailabilityConfigurationsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListAvailabilityConfigurationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListAvailabilityConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListAvailabilityConfigurationsOutputResponse` public func listAvailabilityConfigurationsPaginated(input: ListAvailabilityConfigurationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListAvailabilityConfigurationsInput.nextToken, outputKey: \ListAvailabilityConfigurationsOutputResponse.nextToken, paginationFunction: self.listAvailabilityConfigurations(input:)) } @@ -50,24 +48,23 @@ extension ListAvailabilityConfigurationsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listAvailabilityConfigurationsPaginated` -/// to access the nested member `[WorkMailClientTypes.AvailabilityConfiguration]` -/// - Returns: `[WorkMailClientTypes.AvailabilityConfiguration]` extension PaginatorSequence where Input == ListAvailabilityConfigurationsInput, Output == ListAvailabilityConfigurationsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAvailabilityConfigurationsPaginated` + /// to access the nested member `[WorkMailClientTypes.AvailabilityConfiguration]` + /// - Returns: `[WorkMailClientTypes.AvailabilityConfiguration]` public func availabilityConfigurations() async throws -> [WorkMailClientTypes.AvailabilityConfiguration] { return try await self.asyncCompactMap { item in item.availabilityConfigurations } } } - -/// Paginate over `[ListGroupMembersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupMembersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupMembersOutputResponse` extension WorkMailClient { + /// Paginate over `[ListGroupMembersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupMembersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupMembersOutputResponse` public func listGroupMembersPaginated(input: ListGroupMembersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupMembersInput.nextToken, outputKey: \ListGroupMembersOutputResponse.nextToken, paginationFunction: self.listGroupMembers(input:)) } @@ -82,16 +79,15 @@ extension ListGroupMembersInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListGroupsOutputResponse` public func listGroupsPaginated(input: ListGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListGroupsInput.nextToken, outputKey: \ListGroupsOutputResponse.nextToken, paginationFunction: self.listGroups(input:)) } @@ -105,16 +101,15 @@ extension ListGroupsInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListImpersonationRolesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListImpersonationRolesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListImpersonationRolesOutputResponse` extension WorkMailClient { + /// Paginate over `[ListImpersonationRolesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListImpersonationRolesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListImpersonationRolesOutputResponse` public func listImpersonationRolesPaginated(input: ListImpersonationRolesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListImpersonationRolesInput.nextToken, outputKey: \ListImpersonationRolesOutputResponse.nextToken, paginationFunction: self.listImpersonationRoles(input:)) } @@ -128,16 +123,15 @@ extension ListImpersonationRolesInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListMailboxExportJobsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMailboxExportJobsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMailboxExportJobsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListMailboxExportJobsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMailboxExportJobsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMailboxExportJobsOutputResponse` public func listMailboxExportJobsPaginated(input: ListMailboxExportJobsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMailboxExportJobsInput.nextToken, outputKey: \ListMailboxExportJobsOutputResponse.nextToken, paginationFunction: self.listMailboxExportJobs(input:)) } @@ -151,16 +145,15 @@ extension ListMailboxExportJobsInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListMailboxPermissionsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMailboxPermissionsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMailboxPermissionsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListMailboxPermissionsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMailboxPermissionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMailboxPermissionsOutputResponse` public func listMailboxPermissionsPaginated(input: ListMailboxPermissionsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMailboxPermissionsInput.nextToken, outputKey: \ListMailboxPermissionsOutputResponse.nextToken, paginationFunction: self.listMailboxPermissions(input:)) } @@ -175,16 +168,15 @@ extension ListMailboxPermissionsInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListMailDomainsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMailDomainsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMailDomainsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListMailDomainsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMailDomainsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMailDomainsOutputResponse` public func listMailDomainsPaginated(input: ListMailDomainsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMailDomainsInput.nextToken, outputKey: \ListMailDomainsOutputResponse.nextToken, paginationFunction: self.listMailDomains(input:)) } @@ -198,16 +190,15 @@ extension ListMailDomainsInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListMobileDeviceAccessOverridesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListMobileDeviceAccessOverridesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListMobileDeviceAccessOverridesOutputResponse` extension WorkMailClient { + /// Paginate over `[ListMobileDeviceAccessOverridesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListMobileDeviceAccessOverridesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListMobileDeviceAccessOverridesOutputResponse` public func listMobileDeviceAccessOverridesPaginated(input: ListMobileDeviceAccessOverridesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListMobileDeviceAccessOverridesInput.nextToken, outputKey: \ListMobileDeviceAccessOverridesOutputResponse.nextToken, paginationFunction: self.listMobileDeviceAccessOverrides(input:)) } @@ -223,16 +214,15 @@ extension ListMobileDeviceAccessOverridesInput: ClientRuntime.PaginateToken { userId: self.userId )} } - -/// Paginate over `[ListOrganizationsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListOrganizationsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationsOutputResponse` extension WorkMailClient { + /// Paginate over `[ListOrganizationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListOrganizationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListOrganizationsOutputResponse` public func listOrganizationsPaginated(input: ListOrganizationsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListOrganizationsInput.nextToken, outputKey: \ListOrganizationsOutputResponse.nextToken, paginationFunction: self.listOrganizations(input:)) } @@ -245,16 +235,15 @@ extension ListOrganizationsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListResourceDelegatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourceDelegatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourceDelegatesOutputResponse` extension WorkMailClient { + /// Paginate over `[ListResourceDelegatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourceDelegatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourceDelegatesOutputResponse` public func listResourceDelegatesPaginated(input: ListResourceDelegatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourceDelegatesInput.nextToken, outputKey: \ListResourceDelegatesOutputResponse.nextToken, paginationFunction: self.listResourceDelegates(input:)) } @@ -269,16 +258,15 @@ extension ListResourceDelegatesInput: ClientRuntime.PaginateToken { resourceId: self.resourceId )} } - -/// Paginate over `[ListResourcesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` extension WorkMailClient { + /// Paginate over `[ListResourcesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcesOutputResponse` public func listResourcesPaginated(input: ListResourcesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcesInput.nextToken, outputKey: \ListResourcesOutputResponse.nextToken, paginationFunction: self.listResources(input:)) } @@ -292,16 +280,15 @@ extension ListResourcesInput: ClientRuntime.PaginateToken { organizationId: self.organizationId )} } - -/// Paginate over `[ListUsersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUsersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` extension WorkMailClient { + /// Paginate over `[ListUsersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUsersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUsersOutputResponse` public func listUsersPaginated(input: ListUsersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUsersInput.nextToken, outputKey: \ListUsersOutputResponse.nextToken, paginationFunction: self.listUsers(input:)) } diff --git a/Sources/Services/AWSWorkSpaces/Paginators.swift b/Sources/Services/AWSWorkSpaces/Paginators.swift index 3204a8df0ab..795853c19d7 100644 --- a/Sources/Services/AWSWorkSpaces/Paginators.swift +++ b/Sources/Services/AWSWorkSpaces/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[DescribeWorkspaceBundlesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeWorkspaceBundlesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspaceBundlesOutputResponse` extension WorkSpacesClient { + /// Paginate over `[DescribeWorkspaceBundlesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeWorkspaceBundlesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspaceBundlesOutputResponse` public func describeWorkspaceBundlesPaginated(input: DescribeWorkspaceBundlesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeWorkspaceBundlesInput.nextToken, outputKey: \DescribeWorkspaceBundlesOutputResponse.nextToken, paginationFunction: self.describeWorkspaceBundles(input:)) } @@ -26,24 +25,23 @@ extension DescribeWorkspaceBundlesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeWorkspaceBundlesPaginated` -/// to access the nested member `[WorkSpacesClientTypes.WorkspaceBundle]` -/// - Returns: `[WorkSpacesClientTypes.WorkspaceBundle]` extension PaginatorSequence where Input == DescribeWorkspaceBundlesInput, Output == DescribeWorkspaceBundlesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeWorkspaceBundlesPaginated` + /// to access the nested member `[WorkSpacesClientTypes.WorkspaceBundle]` + /// - Returns: `[WorkSpacesClientTypes.WorkspaceBundle]` public func bundles() async throws -> [WorkSpacesClientTypes.WorkspaceBundle] { return try await self.asyncCompactMap { item in item.bundles } } } - -/// Paginate over `[DescribeWorkspaceDirectoriesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeWorkspaceDirectoriesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspaceDirectoriesOutputResponse` extension WorkSpacesClient { + /// Paginate over `[DescribeWorkspaceDirectoriesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeWorkspaceDirectoriesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspaceDirectoriesOutputResponse` public func describeWorkspaceDirectoriesPaginated(input: DescribeWorkspaceDirectoriesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeWorkspaceDirectoriesInput.nextToken, outputKey: \DescribeWorkspaceDirectoriesOutputResponse.nextToken, paginationFunction: self.describeWorkspaceDirectories(input:)) } @@ -58,24 +56,23 @@ extension DescribeWorkspaceDirectoriesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeWorkspaceDirectoriesPaginated` -/// to access the nested member `[WorkSpacesClientTypes.WorkspaceDirectory]` -/// - Returns: `[WorkSpacesClientTypes.WorkspaceDirectory]` extension PaginatorSequence where Input == DescribeWorkspaceDirectoriesInput, Output == DescribeWorkspaceDirectoriesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeWorkspaceDirectoriesPaginated` + /// to access the nested member `[WorkSpacesClientTypes.WorkspaceDirectory]` + /// - Returns: `[WorkSpacesClientTypes.WorkspaceDirectory]` public func directories() async throws -> [WorkSpacesClientTypes.WorkspaceDirectory] { return try await self.asyncCompactMap { item in item.directories } } } - -/// Paginate over `[DescribeWorkspacesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[DescribeWorkspacesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspacesOutputResponse` extension WorkSpacesClient { + /// Paginate over `[DescribeWorkspacesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeWorkspacesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeWorkspacesOutputResponse` public func describeWorkspacesPaginated(input: DescribeWorkspacesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeWorkspacesInput.nextToken, outputKey: \DescribeWorkspacesOutputResponse.nextToken, paginationFunction: self.describeWorkspaces(input:)) } @@ -93,10 +90,10 @@ extension DescribeWorkspacesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `describeWorkspacesPaginated` -/// to access the nested member `[WorkSpacesClientTypes.Workspace]` -/// - Returns: `[WorkSpacesClientTypes.Workspace]` extension PaginatorSequence where Input == DescribeWorkspacesInput, Output == DescribeWorkspacesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `describeWorkspacesPaginated` + /// to access the nested member `[WorkSpacesClientTypes.Workspace]` + /// - Returns: `[WorkSpacesClientTypes.Workspace]` public func workspaces() async throws -> [WorkSpacesClientTypes.Workspace] { return try await self.asyncCompactMap { item in item.workspaces } } diff --git a/Sources/Services/AWSWorkSpacesWeb/EndpointResolver.swift b/Sources/Services/AWSWorkSpacesWeb/EndpointResolver.swift index a3a2d2f3a8e..30a9b74c710 100644 --- a/Sources/Services/AWSWorkSpacesWeb/EndpointResolver.swift +++ b/Sources/Services/AWSWorkSpacesWeb/EndpointResolver.swift @@ -35,7 +35,7 @@ public struct DefaultEndpointResolver: EndpointResolver { private let engine: AWSClientRuntime.AWSEndpointsRuleEngine private let partitions = "{\"version\":\"1.1\",\"partitions\":[{\"id\":\"aws\",\"regionRegex\":\"^(us|eu|ap|sa|ca|me|af)-\\\\w+-\\\\d+$\",\"regions\":{\"af-south-1\":{},\"ap-east-1\":{},\"ap-northeast-1\":{},\"ap-northeast-2\":{},\"ap-northeast-3\":{},\"ap-south-1\":{},\"ap-southeast-1\":{},\"ap-southeast-2\":{},\"ap-southeast-3\":{},\"ca-central-1\":{},\"eu-central-1\":{},\"eu-north-1\":{},\"eu-south-1\":{},\"eu-west-1\":{},\"eu-west-2\":{},\"eu-west-3\":{},\"me-central-1\":{},\"me-south-1\":{},\"sa-east-1\":{},\"us-east-1\":{},\"us-east-2\":{},\"us-west-1\":{},\"us-west-2\":{},\"aws-global\":{}},\"outputs\":{\"name\":\"aws\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-us-gov\",\"regionRegex\":\"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"us-gov-west-1\":{},\"us-gov-east-1\":{},\"aws-us-gov-global\":{}},\"outputs\":{\"name\":\"aws-us-gov\",\"dnsSuffix\":\"amazonaws.com\",\"dualStackDnsSuffix\":\"api.aws\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-cn\",\"regionRegex\":\"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\"regions\":{\"cn-north-1\":{},\"cn-northwest-1\":{},\"aws-cn-global\":{}},\"outputs\":{\"name\":\"aws-cn\",\"dnsSuffix\":\"amazonaws.com.cn\",\"dualStackDnsSuffix\":\"api.amazonwebservices.com.cn\",\"supportsFIPS\":true,\"supportsDualStack\":true}},{\"id\":\"aws-iso\",\"regionRegex\":\"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso\",\"dnsSuffix\":\"c2s.ic.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"c2s.ic.gov\"},\"regions\":{\"us-iso-east-1\":{},\"us-iso-west-1\":{},\"aws-iso-global\":{}}},{\"id\":\"aws-iso-b\",\"regionRegex\":\"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\"outputs\":{\"name\":\"aws-iso-b\",\"dnsSuffix\":\"sc2s.sgov.gov\",\"supportsFIPS\":true,\"supportsDualStack\":false,\"dualStackDnsSuffix\":\"sc2s.sgov.gov\"},\"regions\":{\"us-isob-east-1\":{},\"aws-iso-b-global\":{}}}]}" - private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]},{\"fn\":\"parseURL\",\"argv\":[{\"ref\":\"Endpoint\"}],\"assign\":\"url\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" + private let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":true,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}]},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"type\":\"tree\",\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}]},{\"conditions\":[],\"endpoint\":{\"url\":\"https://workspaces-web.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}]}]}" public init() throws { engine = try AWSClientRuntime.AWSEndpointsRuleEngine(partitions: partitions, ruleSet: ruleSet) diff --git a/Sources/Services/AWSWorkSpacesWeb/Paginators.swift b/Sources/Services/AWSWorkSpacesWeb/Paginators.swift index 165501c457d..f323f55dfcb 100644 --- a/Sources/Services/AWSWorkSpacesWeb/Paginators.swift +++ b/Sources/Services/AWSWorkSpacesWeb/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[ListBrowserSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListBrowserSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListBrowserSettingsOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListBrowserSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListBrowserSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListBrowserSettingsOutputResponse` public func listBrowserSettingsPaginated(input: ListBrowserSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListBrowserSettingsInput.nextToken, outputKey: \ListBrowserSettingsOutputResponse.nextToken, paginationFunction: self.listBrowserSettings(input:)) } @@ -24,16 +23,15 @@ extension ListBrowserSettingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListIdentityProvidersOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListIdentityProvidersInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListIdentityProvidersOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListIdentityProvidersInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListIdentityProvidersOutputResponse` public func listIdentityProvidersPaginated(input: ListIdentityProvidersInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListIdentityProvidersInput.nextToken, outputKey: \ListIdentityProvidersOutputResponse.nextToken, paginationFunction: self.listIdentityProviders(input:)) } @@ -47,16 +45,15 @@ extension ListIdentityProvidersInput: ClientRuntime.PaginateToken { portalArn: self.portalArn )} } - -/// Paginate over `[ListNetworkSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListNetworkSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListNetworkSettingsOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListNetworkSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListNetworkSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNetworkSettingsOutputResponse` public func listNetworkSettingsPaginated(input: ListNetworkSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListNetworkSettingsInput.nextToken, outputKey: \ListNetworkSettingsOutputResponse.nextToken, paginationFunction: self.listNetworkSettings(input:)) } @@ -69,16 +66,15 @@ extension ListNetworkSettingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListPortalsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListPortalsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListPortalsOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListPortalsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListPortalsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListPortalsOutputResponse` public func listPortalsPaginated(input: ListPortalsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListPortalsInput.nextToken, outputKey: \ListPortalsOutputResponse.nextToken, paginationFunction: self.listPortals(input:)) } @@ -91,16 +87,15 @@ extension ListPortalsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListTrustStoreCertificatesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrustStoreCertificatesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrustStoreCertificatesOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListTrustStoreCertificatesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrustStoreCertificatesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrustStoreCertificatesOutputResponse` public func listTrustStoreCertificatesPaginated(input: ListTrustStoreCertificatesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrustStoreCertificatesInput.nextToken, outputKey: \ListTrustStoreCertificatesOutputResponse.nextToken, paginationFunction: self.listTrustStoreCertificates(input:)) } @@ -114,16 +109,15 @@ extension ListTrustStoreCertificatesInput: ClientRuntime.PaginateToken { trustStoreArn: self.trustStoreArn )} } - -/// Paginate over `[ListTrustStoresOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTrustStoresInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTrustStoresOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListTrustStoresOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTrustStoresInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTrustStoresOutputResponse` public func listTrustStoresPaginated(input: ListTrustStoresInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTrustStoresInput.nextToken, outputKey: \ListTrustStoresOutputResponse.nextToken, paginationFunction: self.listTrustStores(input:)) } @@ -136,16 +130,15 @@ extension ListTrustStoresInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListUserAccessLoggingSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserAccessLoggingSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserAccessLoggingSettingsOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListUserAccessLoggingSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserAccessLoggingSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserAccessLoggingSettingsOutputResponse` public func listUserAccessLoggingSettingsPaginated(input: ListUserAccessLoggingSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserAccessLoggingSettingsInput.nextToken, outputKey: \ListUserAccessLoggingSettingsOutputResponse.nextToken, paginationFunction: self.listUserAccessLoggingSettings(input:)) } @@ -158,16 +151,15 @@ extension ListUserAccessLoggingSettingsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[ListUserSettingsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListUserSettingsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListUserSettingsOutputResponse` extension WorkSpacesWebClient { + /// Paginate over `[ListUserSettingsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListUserSettingsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListUserSettingsOutputResponse` public func listUserSettingsPaginated(input: ListUserSettingsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListUserSettingsInput.nextToken, outputKey: \ListUserSettingsOutputResponse.nextToken, paginationFunction: self.listUserSettings(input:)) } diff --git a/Sources/Services/AWSWorkSpacesWeb/models/Models.swift b/Sources/Services/AWSWorkSpacesWeb/models/Models.swift index e77e567d84a..0f7d6df93d1 100644 --- a/Sources/Services/AWSWorkSpacesWeb/models/Models.swift +++ b/Sources/Services/AWSWorkSpacesWeb/models/Models.swift @@ -732,6 +732,38 @@ extension AssociateUserSettingsOutputResponseBody: Swift.Decodable { } } +extension WorkSpacesWebClientTypes { + public enum AuthenticationType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case iamIdentityCenter + case standard + case sdkUnknown(Swift.String) + + public static var allCases: [AuthenticationType] { + return [ + .iamIdentityCenter, + .standard, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .iamIdentityCenter: return "IAM_Identity_Center" + case .standard: return "Standard" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AuthenticationType(rawValue: rawValue) ?? AuthenticationType.sdkUnknown(rawValue) + } + } +} + extension WorkSpacesWebClientTypes.BrowserSettings: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case associatedPortalArns @@ -1772,12 +1804,13 @@ extension CreateNetworkSettingsOutputResponseBody: Swift.Decodable { extension CreatePortalInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreatePortalInput(additionalEncryptionContext: \(Swift.String(describing: additionalEncryptionContext)), clientToken: \(Swift.String(describing: clientToken)), customerManagedKey: \(Swift.String(describing: customerManagedKey)), tags: \(Swift.String(describing: tags)), displayName: \"CONTENT_REDACTED\")"} + "CreatePortalInput(additionalEncryptionContext: \(Swift.String(describing: additionalEncryptionContext)), authenticationType: \(Swift.String(describing: authenticationType)), clientToken: \(Swift.String(describing: clientToken)), customerManagedKey: \(Swift.String(describing: customerManagedKey)), tags: \(Swift.String(describing: tags)), displayName: \"CONTENT_REDACTED\")"} } extension CreatePortalInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case additionalEncryptionContext + case authenticationType case clientToken case customerManagedKey case displayName @@ -1792,6 +1825,9 @@ extension CreatePortalInput: Swift.Encodable { try additionalEncryptionContextContainer.encode(encryptionContextMap0, forKey: ClientRuntime.Key(stringValue: dictKey0)) } } + if let authenticationType = self.authenticationType { + try encodeContainer.encode(authenticationType.rawValue, forKey: .authenticationType) + } if let clientToken = self.clientToken { try encodeContainer.encode(clientToken, forKey: .clientToken) } @@ -1819,6 +1855,8 @@ extension CreatePortalInput: ClientRuntime.URLPathProvider { public struct CreatePortalInput: Swift.Equatable { /// The additional encryption context of the portal. public var additionalEncryptionContext: [Swift.String:Swift.String]? + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + public var authenticationType: WorkSpacesWebClientTypes.AuthenticationType? /// A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK. public var clientToken: Swift.String? /// The customer managed key of the web portal. @@ -1830,6 +1868,7 @@ public struct CreatePortalInput: Swift.Equatable { public init ( additionalEncryptionContext: [Swift.String:Swift.String]? = nil, + authenticationType: WorkSpacesWebClientTypes.AuthenticationType? = nil, clientToken: Swift.String? = nil, customerManagedKey: Swift.String? = nil, displayName: Swift.String? = nil, @@ -1837,6 +1876,7 @@ public struct CreatePortalInput: Swift.Equatable { ) { self.additionalEncryptionContext = additionalEncryptionContext + self.authenticationType = authenticationType self.clientToken = clientToken self.customerManagedKey = customerManagedKey self.displayName = displayName @@ -1850,11 +1890,13 @@ struct CreatePortalInputBody: Swift.Equatable { let customerManagedKey: Swift.String? let additionalEncryptionContext: [Swift.String:Swift.String]? let clientToken: Swift.String? + let authenticationType: WorkSpacesWebClientTypes.AuthenticationType? } extension CreatePortalInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case additionalEncryptionContext + case authenticationType case clientToken case customerManagedKey case displayName @@ -1891,6 +1933,8 @@ extension CreatePortalInputBody: Swift.Decodable { additionalEncryptionContext = additionalEncryptionContextDecoded0 let clientTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .clientToken) clientToken = clientTokenDecoded + let authenticationTypeDecoded = try containerValues.decodeIfPresent(WorkSpacesWebClientTypes.AuthenticationType.self, forKey: .authenticationType) + authenticationType = authenticationTypeDecoded } } @@ -6088,6 +6132,7 @@ extension WorkSpacesWebClientTypes { extension WorkSpacesWebClientTypes.Portal: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case authenticationType case browserSettingsArn case browserType case creationDate @@ -6105,6 +6150,9 @@ extension WorkSpacesWebClientTypes.Portal: Swift.Codable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let authenticationType = self.authenticationType { + try encodeContainer.encode(authenticationType.rawValue, forKey: .authenticationType) + } if let browserSettingsArn = self.browserSettingsArn { try encodeContainer.encode(browserSettingsArn, forKey: .browserSettingsArn) } @@ -6174,17 +6222,21 @@ extension WorkSpacesWebClientTypes.Portal: Swift.Codable { statusReason = statusReasonDecoded let userAccessLoggingSettingsArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userAccessLoggingSettingsArn) userAccessLoggingSettingsArn = userAccessLoggingSettingsArnDecoded + let authenticationTypeDecoded = try containerValues.decodeIfPresent(WorkSpacesWebClientTypes.AuthenticationType.self, forKey: .authenticationType) + authenticationType = authenticationTypeDecoded } } extension WorkSpacesWebClientTypes.Portal: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "Portal(browserSettingsArn: \(Swift.String(describing: browserSettingsArn)), browserType: \(Swift.String(describing: browserType)), creationDate: \(Swift.String(describing: creationDate)), networkSettingsArn: \(Swift.String(describing: networkSettingsArn)), portalArn: \(Swift.String(describing: portalArn)), portalEndpoint: \(Swift.String(describing: portalEndpoint)), portalStatus: \(Swift.String(describing: portalStatus)), rendererType: \(Swift.String(describing: rendererType)), statusReason: \(Swift.String(describing: statusReason)), trustStoreArn: \(Swift.String(describing: trustStoreArn)), userAccessLoggingSettingsArn: \(Swift.String(describing: userAccessLoggingSettingsArn)), userSettingsArn: \(Swift.String(describing: userSettingsArn)), displayName: \"CONTENT_REDACTED\")"} + "Portal(authenticationType: \(Swift.String(describing: authenticationType)), browserSettingsArn: \(Swift.String(describing: browserSettingsArn)), browserType: \(Swift.String(describing: browserType)), creationDate: \(Swift.String(describing: creationDate)), networkSettingsArn: \(Swift.String(describing: networkSettingsArn)), portalArn: \(Swift.String(describing: portalArn)), portalEndpoint: \(Swift.String(describing: portalEndpoint)), portalStatus: \(Swift.String(describing: portalStatus)), rendererType: \(Swift.String(describing: rendererType)), statusReason: \(Swift.String(describing: statusReason)), trustStoreArn: \(Swift.String(describing: trustStoreArn)), userAccessLoggingSettingsArn: \(Swift.String(describing: userAccessLoggingSettingsArn)), userSettingsArn: \(Swift.String(describing: userSettingsArn)), displayName: \"CONTENT_REDACTED\")"} } extension WorkSpacesWebClientTypes { /// The web portal. public struct Portal: Swift.Equatable { + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + public var authenticationType: WorkSpacesWebClientTypes.AuthenticationType? /// The ARN of the browser settings that is associated with this web portal. public var browserSettingsArn: Swift.String? /// The browser that users see when using a streaming session. @@ -6213,6 +6265,7 @@ extension WorkSpacesWebClientTypes { public var userSettingsArn: Swift.String? public init ( + authenticationType: WorkSpacesWebClientTypes.AuthenticationType? = nil, browserSettingsArn: Swift.String? = nil, browserType: WorkSpacesWebClientTypes.BrowserType? = nil, creationDate: ClientRuntime.Date? = nil, @@ -6228,6 +6281,7 @@ extension WorkSpacesWebClientTypes { userSettingsArn: Swift.String? = nil ) { + self.authenticationType = authenticationType self.browserSettingsArn = browserSettingsArn self.browserType = browserType self.creationDate = creationDate @@ -6283,6 +6337,7 @@ extension WorkSpacesWebClientTypes { extension WorkSpacesWebClientTypes.PortalSummary: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case authenticationType case browserSettingsArn case browserType case creationDate @@ -6299,6 +6354,9 @@ extension WorkSpacesWebClientTypes.PortalSummary: Swift.Codable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let authenticationType = self.authenticationType { + try encodeContainer.encode(authenticationType.rawValue, forKey: .authenticationType) + } if let browserSettingsArn = self.browserSettingsArn { try encodeContainer.encode(browserSettingsArn, forKey: .browserSettingsArn) } @@ -6363,17 +6421,21 @@ extension WorkSpacesWebClientTypes.PortalSummary: Swift.Codable { trustStoreArn = trustStoreArnDecoded let userAccessLoggingSettingsArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userAccessLoggingSettingsArn) userAccessLoggingSettingsArn = userAccessLoggingSettingsArnDecoded + let authenticationTypeDecoded = try containerValues.decodeIfPresent(WorkSpacesWebClientTypes.AuthenticationType.self, forKey: .authenticationType) + authenticationType = authenticationTypeDecoded } } extension WorkSpacesWebClientTypes.PortalSummary: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "PortalSummary(browserSettingsArn: \(Swift.String(describing: browserSettingsArn)), browserType: \(Swift.String(describing: browserType)), creationDate: \(Swift.String(describing: creationDate)), networkSettingsArn: \(Swift.String(describing: networkSettingsArn)), portalArn: \(Swift.String(describing: portalArn)), portalEndpoint: \(Swift.String(describing: portalEndpoint)), portalStatus: \(Swift.String(describing: portalStatus)), rendererType: \(Swift.String(describing: rendererType)), trustStoreArn: \(Swift.String(describing: trustStoreArn)), userAccessLoggingSettingsArn: \(Swift.String(describing: userAccessLoggingSettingsArn)), userSettingsArn: \(Swift.String(describing: userSettingsArn)), displayName: \"CONTENT_REDACTED\")"} + "PortalSummary(authenticationType: \(Swift.String(describing: authenticationType)), browserSettingsArn: \(Swift.String(describing: browserSettingsArn)), browserType: \(Swift.String(describing: browserType)), creationDate: \(Swift.String(describing: creationDate)), networkSettingsArn: \(Swift.String(describing: networkSettingsArn)), portalArn: \(Swift.String(describing: portalArn)), portalEndpoint: \(Swift.String(describing: portalEndpoint)), portalStatus: \(Swift.String(describing: portalStatus)), rendererType: \(Swift.String(describing: rendererType)), trustStoreArn: \(Swift.String(describing: trustStoreArn)), userAccessLoggingSettingsArn: \(Swift.String(describing: userAccessLoggingSettingsArn)), userSettingsArn: \(Swift.String(describing: userSettingsArn)), displayName: \"CONTENT_REDACTED\")"} } extension WorkSpacesWebClientTypes { /// The summary of the portal. public struct PortalSummary: Swift.Equatable { + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + public var authenticationType: WorkSpacesWebClientTypes.AuthenticationType? /// The ARN of the browser settings that is associated with the web portal. public var browserSettingsArn: Swift.String? /// The browser type of the web portal. @@ -6400,6 +6462,7 @@ extension WorkSpacesWebClientTypes { public var userSettingsArn: Swift.String? public init ( + authenticationType: WorkSpacesWebClientTypes.AuthenticationType? = nil, browserSettingsArn: Swift.String? = nil, browserType: WorkSpacesWebClientTypes.BrowserType? = nil, creationDate: ClientRuntime.Date? = nil, @@ -6414,6 +6477,7 @@ extension WorkSpacesWebClientTypes { userSettingsArn: Swift.String? = nil ) { + self.authenticationType = authenticationType self.browserSettingsArn = browserSettingsArn self.browserType = browserType self.creationDate = creationDate @@ -7708,16 +7772,20 @@ extension UpdateNetworkSettingsOutputResponseBody: Swift.Decodable { extension UpdatePortalInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdatePortalInput(portalArn: \(Swift.String(describing: portalArn)), displayName: \"CONTENT_REDACTED\")"} + "UpdatePortalInput(authenticationType: \(Swift.String(describing: authenticationType)), portalArn: \(Swift.String(describing: portalArn)), displayName: \"CONTENT_REDACTED\")"} } extension UpdatePortalInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case authenticationType case displayName } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let authenticationType = self.authenticationType { + try encodeContainer.encode(authenticationType.rawValue, forKey: .authenticationType) + } if let displayName = self.displayName { try encodeContainer.encode(displayName, forKey: .displayName) } @@ -7734,6 +7802,8 @@ extension UpdatePortalInput: ClientRuntime.URLPathProvider { } public struct UpdatePortalInput: Swift.Equatable { + /// The type of authentication integration points used when signing into the web portal. Defaults to Standard. Standard web portals are authenticated directly through your identity provider. You need to call CreateIdentityProvider to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider. IAM_Identity_Center web portals are authenticated through AWS IAM Identity Center (successor to AWS Single Sign-On). They provide additional features, such as IdP-initiated authentication. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center. + public var authenticationType: WorkSpacesWebClientTypes.AuthenticationType? /// The name of the web portal. This is not visible to users who log into the web portal. public var displayName: Swift.String? /// The ARN of the web portal. @@ -7741,10 +7811,12 @@ public struct UpdatePortalInput: Swift.Equatable { public var portalArn: Swift.String? public init ( + authenticationType: WorkSpacesWebClientTypes.AuthenticationType? = nil, displayName: Swift.String? = nil, portalArn: Swift.String? = nil ) { + self.authenticationType = authenticationType self.displayName = displayName self.portalArn = portalArn } @@ -7752,10 +7824,12 @@ public struct UpdatePortalInput: Swift.Equatable { struct UpdatePortalInputBody: Swift.Equatable { let displayName: Swift.String? + let authenticationType: WorkSpacesWebClientTypes.AuthenticationType? } extension UpdatePortalInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case authenticationType case displayName } @@ -7763,6 +7837,8 @@ extension UpdatePortalInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let displayNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .displayName) displayName = displayNameDecoded + let authenticationTypeDecoded = try containerValues.decodeIfPresent(WorkSpacesWebClientTypes.AuthenticationType.self, forKey: .authenticationType) + authenticationType = authenticationTypeDecoded } } diff --git a/Sources/Services/AWSXRay/Paginators.swift b/Sources/Services/AWSXRay/Paginators.swift index 8305c3c3601..c4e704df22c 100644 --- a/Sources/Services/AWSXRay/Paginators.swift +++ b/Sources/Services/AWSXRay/Paginators.swift @@ -2,16 +2,15 @@ import ClientRuntime - -/// Paginate over `[BatchGetTracesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[BatchGetTracesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `BatchGetTracesOutputResponse` extension XRayClient { + /// Paginate over `[BatchGetTracesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[BatchGetTracesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `BatchGetTracesOutputResponse` public func batchGetTracesPaginated(input: BatchGetTracesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \BatchGetTracesInput.nextToken, outputKey: \BatchGetTracesOutputResponse.nextToken, paginationFunction: self.batchGetTraces(input:)) } @@ -25,24 +24,23 @@ extension BatchGetTracesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `batchGetTracesPaginated` -/// to access the nested member `[XRayClientTypes.Trace]` -/// - Returns: `[XRayClientTypes.Trace]` extension PaginatorSequence where Input == BatchGetTracesInput, Output == BatchGetTracesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `batchGetTracesPaginated` + /// to access the nested member `[XRayClientTypes.Trace]` + /// - Returns: `[XRayClientTypes.Trace]` public func traces() async throws -> [XRayClientTypes.Trace] { return try await self.asyncCompactMap { item in item.traces } } } - -/// Paginate over `[GetGroupsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetGroupsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetGroupsOutputResponse` extension XRayClient { + /// Paginate over `[GetGroupsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetGroupsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetGroupsOutputResponse` public func getGroupsPaginated(input: GetGroupsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetGroupsInput.nextToken, outputKey: \GetGroupsOutputResponse.nextToken, paginationFunction: self.getGroups(input:)) } @@ -55,24 +53,23 @@ extension GetGroupsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getGroupsPaginated` -/// to access the nested member `[XRayClientTypes.GroupSummary]` -/// - Returns: `[XRayClientTypes.GroupSummary]` extension PaginatorSequence where Input == GetGroupsInput, Output == GetGroupsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getGroupsPaginated` + /// to access the nested member `[XRayClientTypes.GroupSummary]` + /// - Returns: `[XRayClientTypes.GroupSummary]` public func groups() async throws -> [XRayClientTypes.GroupSummary] { return try await self.asyncCompactMap { item in item.groups } } } - -/// Paginate over `[GetInsightEventsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInsightEventsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInsightEventsOutputResponse` extension XRayClient { + /// Paginate over `[GetInsightEventsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInsightEventsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInsightEventsOutputResponse` public func getInsightEventsPaginated(input: GetInsightEventsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInsightEventsInput.nextToken, outputKey: \GetInsightEventsOutputResponse.nextToken, paginationFunction: self.getInsightEvents(input:)) } @@ -86,16 +83,15 @@ extension GetInsightEventsInput: ClientRuntime.PaginateToken { nextToken: token )} } - -/// Paginate over `[GetInsightSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetInsightSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetInsightSummariesOutputResponse` extension XRayClient { + /// Paginate over `[GetInsightSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetInsightSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetInsightSummariesOutputResponse` public func getInsightSummariesPaginated(input: GetInsightSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetInsightSummariesInput.nextToken, outputKey: \GetInsightSummariesOutputResponse.nextToken, paginationFunction: self.getInsightSummaries(input:)) } @@ -113,16 +109,15 @@ extension GetInsightSummariesInput: ClientRuntime.PaginateToken { states: self.states )} } - -/// Paginate over `[GetSamplingRulesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSamplingRulesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSamplingRulesOutputResponse` extension XRayClient { + /// Paginate over `[GetSamplingRulesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSamplingRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSamplingRulesOutputResponse` public func getSamplingRulesPaginated(input: GetSamplingRulesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSamplingRulesInput.nextToken, outputKey: \GetSamplingRulesOutputResponse.nextToken, paginationFunction: self.getSamplingRules(input:)) } @@ -135,24 +130,23 @@ extension GetSamplingRulesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSamplingRulesPaginated` -/// to access the nested member `[XRayClientTypes.SamplingRuleRecord]` -/// - Returns: `[XRayClientTypes.SamplingRuleRecord]` extension PaginatorSequence where Input == GetSamplingRulesInput, Output == GetSamplingRulesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSamplingRulesPaginated` + /// to access the nested member `[XRayClientTypes.SamplingRuleRecord]` + /// - Returns: `[XRayClientTypes.SamplingRuleRecord]` public func samplingRuleRecords() async throws -> [XRayClientTypes.SamplingRuleRecord] { return try await self.asyncCompactMap { item in item.samplingRuleRecords } } } - -/// Paginate over `[GetSamplingStatisticSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetSamplingStatisticSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetSamplingStatisticSummariesOutputResponse` extension XRayClient { + /// Paginate over `[GetSamplingStatisticSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetSamplingStatisticSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetSamplingStatisticSummariesOutputResponse` public func getSamplingStatisticSummariesPaginated(input: GetSamplingStatisticSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetSamplingStatisticSummariesInput.nextToken, outputKey: \GetSamplingStatisticSummariesOutputResponse.nextToken, paginationFunction: self.getSamplingStatisticSummaries(input:)) } @@ -165,24 +159,23 @@ extension GetSamplingStatisticSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getSamplingStatisticSummariesPaginated` -/// to access the nested member `[XRayClientTypes.SamplingStatisticSummary]` -/// - Returns: `[XRayClientTypes.SamplingStatisticSummary]` extension PaginatorSequence where Input == GetSamplingStatisticSummariesInput, Output == GetSamplingStatisticSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getSamplingStatisticSummariesPaginated` + /// to access the nested member `[XRayClientTypes.SamplingStatisticSummary]` + /// - Returns: `[XRayClientTypes.SamplingStatisticSummary]` public func samplingStatisticSummaries() async throws -> [XRayClientTypes.SamplingStatisticSummary] { return try await self.asyncCompactMap { item in item.samplingStatisticSummaries } } } - -/// Paginate over `[GetServiceGraphOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetServiceGraphInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetServiceGraphOutputResponse` extension XRayClient { + /// Paginate over `[GetServiceGraphOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetServiceGraphInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetServiceGraphOutputResponse` public func getServiceGraphPaginated(input: GetServiceGraphInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetServiceGraphInput.nextToken, outputKey: \GetServiceGraphOutputResponse.nextToken, paginationFunction: self.getServiceGraph(input:)) } @@ -199,24 +192,23 @@ extension GetServiceGraphInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getServiceGraphPaginated` -/// to access the nested member `[XRayClientTypes.Service]` -/// - Returns: `[XRayClientTypes.Service]` extension PaginatorSequence where Input == GetServiceGraphInput, Output == GetServiceGraphOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getServiceGraphPaginated` + /// to access the nested member `[XRayClientTypes.Service]` + /// - Returns: `[XRayClientTypes.Service]` public func services() async throws -> [XRayClientTypes.Service] { return try await self.asyncCompactMap { item in item.services } } } - -/// Paginate over `[GetTimeSeriesServiceStatisticsOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTimeSeriesServiceStatisticsInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTimeSeriesServiceStatisticsOutputResponse` extension XRayClient { + /// Paginate over `[GetTimeSeriesServiceStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTimeSeriesServiceStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTimeSeriesServiceStatisticsOutputResponse` public func getTimeSeriesServiceStatisticsPaginated(input: GetTimeSeriesServiceStatisticsInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTimeSeriesServiceStatisticsInput.nextToken, outputKey: \GetTimeSeriesServiceStatisticsOutputResponse.nextToken, paginationFunction: self.getTimeSeriesServiceStatistics(input:)) } @@ -236,24 +228,23 @@ extension GetTimeSeriesServiceStatisticsInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTimeSeriesServiceStatisticsPaginated` -/// to access the nested member `[XRayClientTypes.TimeSeriesServiceStatistics]` -/// - Returns: `[XRayClientTypes.TimeSeriesServiceStatistics]` extension PaginatorSequence where Input == GetTimeSeriesServiceStatisticsInput, Output == GetTimeSeriesServiceStatisticsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTimeSeriesServiceStatisticsPaginated` + /// to access the nested member `[XRayClientTypes.TimeSeriesServiceStatistics]` + /// - Returns: `[XRayClientTypes.TimeSeriesServiceStatistics]` public func timeSeriesServiceStatistics() async throws -> [XRayClientTypes.TimeSeriesServiceStatistics] { return try await self.asyncCompactMap { item in item.timeSeriesServiceStatistics } } } - -/// Paginate over `[GetTraceGraphOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTraceGraphInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTraceGraphOutputResponse` extension XRayClient { + /// Paginate over `[GetTraceGraphOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTraceGraphInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTraceGraphOutputResponse` public func getTraceGraphPaginated(input: GetTraceGraphInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTraceGraphInput.nextToken, outputKey: \GetTraceGraphOutputResponse.nextToken, paginationFunction: self.getTraceGraph(input:)) } @@ -267,24 +258,23 @@ extension GetTraceGraphInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTraceGraphPaginated` -/// to access the nested member `[XRayClientTypes.Service]` -/// - Returns: `[XRayClientTypes.Service]` extension PaginatorSequence where Input == GetTraceGraphInput, Output == GetTraceGraphOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTraceGraphPaginated` + /// to access the nested member `[XRayClientTypes.Service]` + /// - Returns: `[XRayClientTypes.Service]` public func services() async throws -> [XRayClientTypes.Service] { return try await self.asyncCompactMap { item in item.services } } } - -/// Paginate over `[GetTraceSummariesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[GetTraceSummariesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `GetTraceSummariesOutputResponse` extension XRayClient { + /// Paginate over `[GetTraceSummariesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[GetTraceSummariesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `GetTraceSummariesOutputResponse` public func getTraceSummariesPaginated(input: GetTraceSummariesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \GetTraceSummariesInput.nextToken, outputKey: \GetTraceSummariesOutputResponse.nextToken, paginationFunction: self.getTraceSummaries(input:)) } @@ -303,24 +293,23 @@ extension GetTraceSummariesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `getTraceSummariesPaginated` -/// to access the nested member `[XRayClientTypes.TraceSummary]` -/// - Returns: `[XRayClientTypes.TraceSummary]` extension PaginatorSequence where Input == GetTraceSummariesInput, Output == GetTraceSummariesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getTraceSummariesPaginated` + /// to access the nested member `[XRayClientTypes.TraceSummary]` + /// - Returns: `[XRayClientTypes.TraceSummary]` public func traceSummaries() async throws -> [XRayClientTypes.TraceSummary] { return try await self.asyncCompactMap { item in item.traceSummaries } } } - -/// Paginate over `[ListResourcePoliciesOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListResourcePoliciesInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListResourcePoliciesOutputResponse` extension XRayClient { + /// Paginate over `[ListResourcePoliciesOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListResourcePoliciesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListResourcePoliciesOutputResponse` public func listResourcePoliciesPaginated(input: ListResourcePoliciesInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListResourcePoliciesInput.nextToken, outputKey: \ListResourcePoliciesOutputResponse.nextToken, paginationFunction: self.listResourcePolicies(input:)) } @@ -333,24 +322,23 @@ extension ListResourcePoliciesInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listResourcePoliciesPaginated` -/// to access the nested member `[XRayClientTypes.ResourcePolicy]` -/// - Returns: `[XRayClientTypes.ResourcePolicy]` extension PaginatorSequence where Input == ListResourcePoliciesInput, Output == ListResourcePoliciesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listResourcePoliciesPaginated` + /// to access the nested member `[XRayClientTypes.ResourcePolicy]` + /// - Returns: `[XRayClientTypes.ResourcePolicy]` public func resourcePolicies() async throws -> [XRayClientTypes.ResourcePolicy] { return try await self.asyncCompactMap { item in item.resourcePolicies } } } - -/// Paginate over `[ListTagsForResourceOutputResponse]` results. -/// -/// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service -/// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid -/// until then. If there are errors in your request, you will see the failures only after you start iterating. -/// - Parameters: -/// - input: A `[ListTagsForResourceInput]` to start pagination -/// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` extension XRayClient { + /// Paginate over `[ListTagsForResourceOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListTagsForResourceInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTagsForResourceOutputResponse` public func listTagsForResourcePaginated(input: ListTagsForResourceInput) -> ClientRuntime.PaginatorSequence { return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListTagsForResourceInput.nextToken, outputKey: \ListTagsForResourceOutputResponse.nextToken, paginationFunction: self.listTagsForResource(input:)) } @@ -364,10 +352,10 @@ extension ListTagsForResourceInput: ClientRuntime.PaginateToken { )} } -/// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` -/// to access the nested member `[XRayClientTypes.Tag]` -/// - Returns: `[XRayClientTypes.Tag]` extension PaginatorSequence where Input == ListTagsForResourceInput, Output == ListTagsForResourceOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listTagsForResourcePaginated` + /// to access the nested member `[XRayClientTypes.Tag]` + /// - Returns: `[XRayClientTypes.Tag]` public func tags() async throws -> [XRayClientTypes.Tag] { return try await self.asyncCompactMap { item in item.tags } } diff --git a/Tests/Services/AWSACMPCATests/EndpointResolverTest.swift b/Tests/Services/AWSACMPCATests/EndpointResolverTest.swift index a513ed97f98..82c7e0df27f 100644 --- a/Tests/Services/AWSACMPCATests/EndpointResolverTest.swift +++ b/Tests/Services/AWSACMPCATests/EndpointResolverTest.swift @@ -7,8 +7,88 @@ import SmithyTestUtil import XCTest class EndpointResolverTest: CrtXCBaseTestCase { - /// For region ap-south-1 with FIPS enabled and DualStack enabled + /// For region ap-south-2 with FIPS enabled and DualStack enabled func testResolve1() throws { + let endpointParams = EndpointParams( + region: "ap-south-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.ap-south-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-2 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "ap-south-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.ap-south-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-2 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "ap-south-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.ap-south-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-2 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "ap-south-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.ap-south-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { let endpointParams = EndpointParams( region: "ap-south-1", useDualStack: true, @@ -28,7 +108,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-south-1 with FIPS enabled and DualStack disabled - func testResolve2() throws { + func testResolve6() throws { let endpointParams = EndpointParams( region: "ap-south-1", useDualStack: false, @@ -48,7 +128,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-south-1 with FIPS disabled and DualStack enabled - func testResolve3() throws { + func testResolve7() throws { let endpointParams = EndpointParams( region: "ap-south-1", useDualStack: true, @@ -68,7 +148,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-south-1 with FIPS disabled and DualStack disabled - func testResolve4() throws { + func testResolve8() throws { let endpointParams = EndpointParams( region: "ap-south-1", useDualStack: false, @@ -88,7 +168,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-south-1 with FIPS enabled and DualStack enabled - func testResolve5() throws { + func testResolve9() throws { let endpointParams = EndpointParams( region: "eu-south-1", useDualStack: true, @@ -108,7 +188,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-south-1 with FIPS enabled and DualStack disabled - func testResolve6() throws { + func testResolve10() throws { let endpointParams = EndpointParams( region: "eu-south-1", useDualStack: false, @@ -128,7 +208,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-south-1 with FIPS disabled and DualStack enabled - func testResolve7() throws { + func testResolve11() throws { let endpointParams = EndpointParams( region: "eu-south-1", useDualStack: true, @@ -148,7 +228,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-south-1 with FIPS disabled and DualStack disabled - func testResolve8() throws { + func testResolve12() throws { let endpointParams = EndpointParams( region: "eu-south-1", useDualStack: false, @@ -167,8 +247,88 @@ class EndpointResolverTest: CrtXCBaseTestCase { XCTAssertEqual(expected, actual) } + /// For region eu-south-2 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "eu-south-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.eu-south-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-south-2 with FIPS enabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "eu-south-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.eu-south-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-south-2 with FIPS disabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "eu-south-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.eu-south-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-south-2 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "eu-south-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.eu-south-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled - func testResolve9() throws { + func testResolve17() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", useDualStack: true, @@ -188,7 +348,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-east-1 with FIPS enabled and DualStack disabled - func testResolve10() throws { + func testResolve18() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", useDualStack: false, @@ -208,7 +368,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-east-1 with FIPS disabled and DualStack enabled - func testResolve11() throws { + func testResolve19() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", useDualStack: true, @@ -228,7 +388,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-east-1 with FIPS disabled and DualStack disabled - func testResolve12() throws { + func testResolve20() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", useDualStack: false, @@ -248,7 +408,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-central-1 with FIPS enabled and DualStack enabled - func testResolve13() throws { + func testResolve21() throws { let endpointParams = EndpointParams( region: "me-central-1", useDualStack: true, @@ -268,7 +428,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-central-1 with FIPS enabled and DualStack disabled - func testResolve14() throws { + func testResolve22() throws { let endpointParams = EndpointParams( region: "me-central-1", useDualStack: false, @@ -288,7 +448,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-central-1 with FIPS disabled and DualStack enabled - func testResolve15() throws { + func testResolve23() throws { let endpointParams = EndpointParams( region: "me-central-1", useDualStack: true, @@ -308,7 +468,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-central-1 with FIPS disabled and DualStack disabled - func testResolve16() throws { + func testResolve24() throws { let endpointParams = EndpointParams( region: "me-central-1", useDualStack: false, @@ -328,7 +488,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ca-central-1 with FIPS enabled and DualStack enabled - func testResolve17() throws { + func testResolve25() throws { let endpointParams = EndpointParams( region: "ca-central-1", useDualStack: true, @@ -348,7 +508,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ca-central-1 with FIPS enabled and DualStack disabled - func testResolve18() throws { + func testResolve26() throws { let endpointParams = EndpointParams( region: "ca-central-1", useDualStack: false, @@ -368,7 +528,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ca-central-1 with FIPS disabled and DualStack enabled - func testResolve19() throws { + func testResolve27() throws { let endpointParams = EndpointParams( region: "ca-central-1", useDualStack: true, @@ -388,7 +548,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ca-central-1 with FIPS disabled and DualStack disabled - func testResolve20() throws { + func testResolve28() throws { let endpointParams = EndpointParams( region: "ca-central-1", useDualStack: false, @@ -408,7 +568,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-central-1 with FIPS enabled and DualStack enabled - func testResolve21() throws { + func testResolve29() throws { let endpointParams = EndpointParams( region: "eu-central-1", useDualStack: true, @@ -428,7 +588,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-central-1 with FIPS enabled and DualStack disabled - func testResolve22() throws { + func testResolve30() throws { let endpointParams = EndpointParams( region: "eu-central-1", useDualStack: false, @@ -448,7 +608,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-central-1 with FIPS disabled and DualStack enabled - func testResolve23() throws { + func testResolve31() throws { let endpointParams = EndpointParams( region: "eu-central-1", useDualStack: true, @@ -468,7 +628,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-central-1 with FIPS disabled and DualStack disabled - func testResolve24() throws { + func testResolve32() throws { let endpointParams = EndpointParams( region: "eu-central-1", useDualStack: false, @@ -487,8 +647,88 @@ class EndpointResolverTest: CrtXCBaseTestCase { XCTAssertEqual(expected, actual) } + /// For region eu-central-2 with FIPS enabled and DualStack enabled + func testResolve33() throws { + let endpointParams = EndpointParams( + region: "eu-central-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.eu-central-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-2 with FIPS enabled and DualStack disabled + func testResolve34() throws { + let endpointParams = EndpointParams( + region: "eu-central-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.eu-central-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-2 with FIPS disabled and DualStack enabled + func testResolve35() throws { + let endpointParams = EndpointParams( + region: "eu-central-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.eu-central-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-2 with FIPS disabled and DualStack disabled + func testResolve36() throws { + let endpointParams = EndpointParams( + region: "eu-central-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.eu-central-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// For region us-west-1 with FIPS enabled and DualStack enabled - func testResolve25() throws { + func testResolve37() throws { let endpointParams = EndpointParams( region: "us-west-1", useDualStack: true, @@ -508,7 +748,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-1 with FIPS enabled and DualStack disabled - func testResolve26() throws { + func testResolve38() throws { let endpointParams = EndpointParams( region: "us-west-1", useDualStack: false, @@ -528,7 +768,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-1 with FIPS disabled and DualStack enabled - func testResolve27() throws { + func testResolve39() throws { let endpointParams = EndpointParams( region: "us-west-1", useDualStack: true, @@ -548,7 +788,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-1 with FIPS disabled and DualStack disabled - func testResolve28() throws { + func testResolve40() throws { let endpointParams = EndpointParams( region: "us-west-1", useDualStack: false, @@ -568,7 +808,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-2 with FIPS enabled and DualStack enabled - func testResolve29() throws { + func testResolve41() throws { let endpointParams = EndpointParams( region: "us-west-2", useDualStack: true, @@ -588,7 +828,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-2 with FIPS enabled and DualStack disabled - func testResolve30() throws { + func testResolve42() throws { let endpointParams = EndpointParams( region: "us-west-2", useDualStack: false, @@ -608,7 +848,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-2 with FIPS disabled and DualStack enabled - func testResolve31() throws { + func testResolve43() throws { let endpointParams = EndpointParams( region: "us-west-2", useDualStack: true, @@ -628,7 +868,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-west-2 with FIPS disabled and DualStack disabled - func testResolve32() throws { + func testResolve44() throws { let endpointParams = EndpointParams( region: "us-west-2", useDualStack: false, @@ -648,7 +888,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region af-south-1 with FIPS enabled and DualStack enabled - func testResolve33() throws { + func testResolve45() throws { let endpointParams = EndpointParams( region: "af-south-1", useDualStack: true, @@ -668,7 +908,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region af-south-1 with FIPS enabled and DualStack disabled - func testResolve34() throws { + func testResolve46() throws { let endpointParams = EndpointParams( region: "af-south-1", useDualStack: false, @@ -688,7 +928,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region af-south-1 with FIPS disabled and DualStack enabled - func testResolve35() throws { + func testResolve47() throws { let endpointParams = EndpointParams( region: "af-south-1", useDualStack: true, @@ -708,7 +948,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region af-south-1 with FIPS disabled and DualStack disabled - func testResolve36() throws { + func testResolve48() throws { let endpointParams = EndpointParams( region: "af-south-1", useDualStack: false, @@ -728,7 +968,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-north-1 with FIPS enabled and DualStack enabled - func testResolve37() throws { + func testResolve49() throws { let endpointParams = EndpointParams( region: "eu-north-1", useDualStack: true, @@ -748,7 +988,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-north-1 with FIPS enabled and DualStack disabled - func testResolve38() throws { + func testResolve50() throws { let endpointParams = EndpointParams( region: "eu-north-1", useDualStack: false, @@ -768,7 +1008,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-north-1 with FIPS disabled and DualStack enabled - func testResolve39() throws { + func testResolve51() throws { let endpointParams = EndpointParams( region: "eu-north-1", useDualStack: true, @@ -788,7 +1028,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-north-1 with FIPS disabled and DualStack disabled - func testResolve40() throws { + func testResolve52() throws { let endpointParams = EndpointParams( region: "eu-north-1", useDualStack: false, @@ -808,7 +1048,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-3 with FIPS enabled and DualStack enabled - func testResolve41() throws { + func testResolve53() throws { let endpointParams = EndpointParams( region: "eu-west-3", useDualStack: true, @@ -828,7 +1068,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-3 with FIPS enabled and DualStack disabled - func testResolve42() throws { + func testResolve54() throws { let endpointParams = EndpointParams( region: "eu-west-3", useDualStack: false, @@ -848,7 +1088,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-3 with FIPS disabled and DualStack enabled - func testResolve43() throws { + func testResolve55() throws { let endpointParams = EndpointParams( region: "eu-west-3", useDualStack: true, @@ -868,7 +1108,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-3 with FIPS disabled and DualStack disabled - func testResolve44() throws { + func testResolve56() throws { let endpointParams = EndpointParams( region: "eu-west-3", useDualStack: false, @@ -888,7 +1128,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-2 with FIPS enabled and DualStack enabled - func testResolve45() throws { + func testResolve57() throws { let endpointParams = EndpointParams( region: "eu-west-2", useDualStack: true, @@ -908,7 +1148,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-2 with FIPS enabled and DualStack disabled - func testResolve46() throws { + func testResolve58() throws { let endpointParams = EndpointParams( region: "eu-west-2", useDualStack: false, @@ -928,7 +1168,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-2 with FIPS disabled and DualStack enabled - func testResolve47() throws { + func testResolve59() throws { let endpointParams = EndpointParams( region: "eu-west-2", useDualStack: true, @@ -948,7 +1188,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-2 with FIPS disabled and DualStack disabled - func testResolve48() throws { + func testResolve60() throws { let endpointParams = EndpointParams( region: "eu-west-2", useDualStack: false, @@ -968,7 +1208,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-1 with FIPS enabled and DualStack enabled - func testResolve49() throws { + func testResolve61() throws { let endpointParams = EndpointParams( region: "eu-west-1", useDualStack: true, @@ -988,7 +1228,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-1 with FIPS enabled and DualStack disabled - func testResolve50() throws { + func testResolve62() throws { let endpointParams = EndpointParams( region: "eu-west-1", useDualStack: false, @@ -1008,7 +1248,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-1 with FIPS disabled and DualStack enabled - func testResolve51() throws { + func testResolve63() throws { let endpointParams = EndpointParams( region: "eu-west-1", useDualStack: true, @@ -1028,7 +1268,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region eu-west-1 with FIPS disabled and DualStack disabled - func testResolve52() throws { + func testResolve64() throws { let endpointParams = EndpointParams( region: "eu-west-1", useDualStack: false, @@ -1048,7 +1288,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-3 with FIPS enabled and DualStack enabled - func testResolve53() throws { + func testResolve65() throws { let endpointParams = EndpointParams( region: "ap-northeast-3", useDualStack: true, @@ -1068,7 +1308,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-3 with FIPS enabled and DualStack disabled - func testResolve54() throws { + func testResolve66() throws { let endpointParams = EndpointParams( region: "ap-northeast-3", useDualStack: false, @@ -1088,7 +1328,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-3 with FIPS disabled and DualStack enabled - func testResolve55() throws { + func testResolve67() throws { let endpointParams = EndpointParams( region: "ap-northeast-3", useDualStack: true, @@ -1108,7 +1348,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-3 with FIPS disabled and DualStack disabled - func testResolve56() throws { + func testResolve68() throws { let endpointParams = EndpointParams( region: "ap-northeast-3", useDualStack: false, @@ -1128,7 +1368,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-2 with FIPS enabled and DualStack enabled - func testResolve57() throws { + func testResolve69() throws { let endpointParams = EndpointParams( region: "ap-northeast-2", useDualStack: true, @@ -1148,7 +1388,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-2 with FIPS enabled and DualStack disabled - func testResolve58() throws { + func testResolve70() throws { let endpointParams = EndpointParams( region: "ap-northeast-2", useDualStack: false, @@ -1168,7 +1408,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-2 with FIPS disabled and DualStack enabled - func testResolve59() throws { + func testResolve71() throws { let endpointParams = EndpointParams( region: "ap-northeast-2", useDualStack: true, @@ -1188,7 +1428,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-2 with FIPS disabled and DualStack disabled - func testResolve60() throws { + func testResolve72() throws { let endpointParams = EndpointParams( region: "ap-northeast-2", useDualStack: false, @@ -1208,7 +1448,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-1 with FIPS enabled and DualStack enabled - func testResolve61() throws { + func testResolve73() throws { let endpointParams = EndpointParams( region: "ap-northeast-1", useDualStack: true, @@ -1228,7 +1468,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-1 with FIPS enabled and DualStack disabled - func testResolve62() throws { + func testResolve74() throws { let endpointParams = EndpointParams( region: "ap-northeast-1", useDualStack: false, @@ -1248,7 +1488,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-1 with FIPS disabled and DualStack enabled - func testResolve63() throws { + func testResolve75() throws { let endpointParams = EndpointParams( region: "ap-northeast-1", useDualStack: true, @@ -1268,7 +1508,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-northeast-1 with FIPS disabled and DualStack disabled - func testResolve64() throws { + func testResolve76() throws { let endpointParams = EndpointParams( region: "ap-northeast-1", useDualStack: false, @@ -1288,7 +1528,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-south-1 with FIPS enabled and DualStack enabled - func testResolve65() throws { + func testResolve77() throws { let endpointParams = EndpointParams( region: "me-south-1", useDualStack: true, @@ -1308,7 +1548,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-south-1 with FIPS enabled and DualStack disabled - func testResolve66() throws { + func testResolve78() throws { let endpointParams = EndpointParams( region: "me-south-1", useDualStack: false, @@ -1328,7 +1568,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-south-1 with FIPS disabled and DualStack enabled - func testResolve67() throws { + func testResolve79() throws { let endpointParams = EndpointParams( region: "me-south-1", useDualStack: true, @@ -1348,7 +1588,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region me-south-1 with FIPS disabled and DualStack disabled - func testResolve68() throws { + func testResolve80() throws { let endpointParams = EndpointParams( region: "me-south-1", useDualStack: false, @@ -1368,7 +1608,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region sa-east-1 with FIPS enabled and DualStack enabled - func testResolve69() throws { + func testResolve81() throws { let endpointParams = EndpointParams( region: "sa-east-1", useDualStack: true, @@ -1388,7 +1628,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region sa-east-1 with FIPS enabled and DualStack disabled - func testResolve70() throws { + func testResolve82() throws { let endpointParams = EndpointParams( region: "sa-east-1", useDualStack: false, @@ -1408,7 +1648,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region sa-east-1 with FIPS disabled and DualStack enabled - func testResolve71() throws { + func testResolve83() throws { let endpointParams = EndpointParams( region: "sa-east-1", useDualStack: true, @@ -1428,7 +1668,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region sa-east-1 with FIPS disabled and DualStack disabled - func testResolve72() throws { + func testResolve84() throws { let endpointParams = EndpointParams( region: "sa-east-1", useDualStack: false, @@ -1448,7 +1688,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-east-1 with FIPS enabled and DualStack enabled - func testResolve73() throws { + func testResolve85() throws { let endpointParams = EndpointParams( region: "ap-east-1", useDualStack: true, @@ -1468,7 +1708,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-east-1 with FIPS enabled and DualStack disabled - func testResolve74() throws { + func testResolve86() throws { let endpointParams = EndpointParams( region: "ap-east-1", useDualStack: false, @@ -1488,7 +1728,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-east-1 with FIPS disabled and DualStack enabled - func testResolve75() throws { + func testResolve87() throws { let endpointParams = EndpointParams( region: "ap-east-1", useDualStack: true, @@ -1508,7 +1748,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-east-1 with FIPS disabled and DualStack disabled - func testResolve76() throws { + func testResolve88() throws { let endpointParams = EndpointParams( region: "ap-east-1", useDualStack: false, @@ -1528,7 +1768,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-north-1 with FIPS enabled and DualStack enabled - func testResolve77() throws { + func testResolve89() throws { let endpointParams = EndpointParams( region: "cn-north-1", useDualStack: true, @@ -1548,7 +1788,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-north-1 with FIPS enabled and DualStack disabled - func testResolve78() throws { + func testResolve90() throws { let endpointParams = EndpointParams( region: "cn-north-1", useDualStack: false, @@ -1568,7 +1808,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-north-1 with FIPS disabled and DualStack enabled - func testResolve79() throws { + func testResolve91() throws { let endpointParams = EndpointParams( region: "cn-north-1", useDualStack: true, @@ -1588,7 +1828,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-north-1 with FIPS disabled and DualStack disabled - func testResolve80() throws { + func testResolve92() throws { let endpointParams = EndpointParams( region: "cn-north-1", useDualStack: false, @@ -1608,7 +1848,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-west-1 with FIPS enabled and DualStack enabled - func testResolve81() throws { + func testResolve93() throws { let endpointParams = EndpointParams( region: "us-gov-west-1", useDualStack: true, @@ -1628,7 +1868,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-west-1 with FIPS enabled and DualStack disabled - func testResolve82() throws { + func testResolve94() throws { let endpointParams = EndpointParams( region: "us-gov-west-1", useDualStack: false, @@ -1648,7 +1888,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-west-1 with FIPS disabled and DualStack enabled - func testResolve83() throws { + func testResolve95() throws { let endpointParams = EndpointParams( region: "us-gov-west-1", useDualStack: true, @@ -1668,7 +1908,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-gov-west-1 with FIPS disabled and DualStack disabled - func testResolve84() throws { + func testResolve96() throws { let endpointParams = EndpointParams( region: "us-gov-west-1", useDualStack: false, @@ -1688,7 +1928,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-1 with FIPS enabled and DualStack enabled - func testResolve85() throws { + func testResolve97() throws { let endpointParams = EndpointParams( region: "ap-southeast-1", useDualStack: true, @@ -1708,7 +1948,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-1 with FIPS enabled and DualStack disabled - func testResolve86() throws { + func testResolve98() throws { let endpointParams = EndpointParams( region: "ap-southeast-1", useDualStack: false, @@ -1728,7 +1968,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-1 with FIPS disabled and DualStack enabled - func testResolve87() throws { + func testResolve99() throws { let endpointParams = EndpointParams( region: "ap-southeast-1", useDualStack: true, @@ -1748,7 +1988,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-1 with FIPS disabled and DualStack disabled - func testResolve88() throws { + func testResolve100() throws { let endpointParams = EndpointParams( region: "ap-southeast-1", useDualStack: false, @@ -1768,7 +2008,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-2 with FIPS enabled and DualStack enabled - func testResolve89() throws { + func testResolve101() throws { let endpointParams = EndpointParams( region: "ap-southeast-2", useDualStack: true, @@ -1788,7 +2028,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-2 with FIPS enabled and DualStack disabled - func testResolve90() throws { + func testResolve102() throws { let endpointParams = EndpointParams( region: "ap-southeast-2", useDualStack: false, @@ -1808,7 +2048,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-2 with FIPS disabled and DualStack enabled - func testResolve91() throws { + func testResolve103() throws { let endpointParams = EndpointParams( region: "ap-southeast-2", useDualStack: true, @@ -1828,7 +2068,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-2 with FIPS disabled and DualStack disabled - func testResolve92() throws { + func testResolve104() throws { let endpointParams = EndpointParams( region: "ap-southeast-2", useDualStack: false, @@ -1848,7 +2088,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-iso-east-1 with FIPS enabled and DualStack enabled - func testResolve93() throws { + func testResolve105() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: true, @@ -1867,7 +2107,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-iso-east-1 with FIPS enabled and DualStack disabled - func testResolve94() throws { + func testResolve106() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: false, @@ -1887,7 +2127,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-iso-east-1 with FIPS disabled and DualStack enabled - func testResolve95() throws { + func testResolve107() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: true, @@ -1906,7 +2146,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-iso-east-1 with FIPS disabled and DualStack disabled - func testResolve96() throws { + func testResolve108() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: false, @@ -1926,7 +2166,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-3 with FIPS enabled and DualStack enabled - func testResolve97() throws { + func testResolve109() throws { let endpointParams = EndpointParams( region: "ap-southeast-3", useDualStack: true, @@ -1946,7 +2186,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-3 with FIPS enabled and DualStack disabled - func testResolve98() throws { + func testResolve110() throws { let endpointParams = EndpointParams( region: "ap-southeast-3", useDualStack: false, @@ -1966,7 +2206,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-3 with FIPS disabled and DualStack enabled - func testResolve99() throws { + func testResolve111() throws { let endpointParams = EndpointParams( region: "ap-southeast-3", useDualStack: true, @@ -1986,7 +2226,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region ap-southeast-3 with FIPS disabled and DualStack disabled - func testResolve100() throws { + func testResolve112() throws { let endpointParams = EndpointParams( region: "ap-southeast-3", useDualStack: false, @@ -2005,8 +2245,88 @@ class EndpointResolverTest: CrtXCBaseTestCase { XCTAssertEqual(expected, actual) } + /// For region ap-southeast-4 with FIPS enabled and DualStack enabled + func testResolve113() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-4", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.ap-southeast-4.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-4 with FIPS enabled and DualStack disabled + func testResolve114() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-4", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca-fips.ap-southeast-4.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-4 with FIPS disabled and DualStack enabled + func testResolve115() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-4", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.ap-southeast-4.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-4 with FIPS disabled and DualStack disabled + func testResolve116() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-4", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://acm-pca.ap-southeast-4.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// For region us-east-1 with FIPS enabled and DualStack enabled - func testResolve101() throws { + func testResolve117() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: true, @@ -2026,7 +2346,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-1 with FIPS enabled and DualStack disabled - func testResolve102() throws { + func testResolve118() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: false, @@ -2046,7 +2366,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-1 with FIPS disabled and DualStack enabled - func testResolve103() throws { + func testResolve119() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: true, @@ -2066,7 +2386,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-1 with FIPS disabled and DualStack disabled - func testResolve104() throws { + func testResolve120() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: false, @@ -2086,7 +2406,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-2 with FIPS enabled and DualStack enabled - func testResolve105() throws { + func testResolve121() throws { let endpointParams = EndpointParams( region: "us-east-2", useDualStack: true, @@ -2106,7 +2426,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-2 with FIPS enabled and DualStack disabled - func testResolve106() throws { + func testResolve122() throws { let endpointParams = EndpointParams( region: "us-east-2", useDualStack: false, @@ -2126,7 +2446,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-2 with FIPS disabled and DualStack enabled - func testResolve107() throws { + func testResolve123() throws { let endpointParams = EndpointParams( region: "us-east-2", useDualStack: true, @@ -2146,7 +2466,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-east-2 with FIPS disabled and DualStack disabled - func testResolve108() throws { + func testResolve124() throws { let endpointParams = EndpointParams( region: "us-east-2", useDualStack: false, @@ -2166,7 +2486,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-northwest-1 with FIPS enabled and DualStack enabled - func testResolve109() throws { + func testResolve125() throws { let endpointParams = EndpointParams( region: "cn-northwest-1", useDualStack: true, @@ -2186,7 +2506,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-northwest-1 with FIPS enabled and DualStack disabled - func testResolve110() throws { + func testResolve126() throws { let endpointParams = EndpointParams( region: "cn-northwest-1", useDualStack: false, @@ -2206,7 +2526,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-northwest-1 with FIPS disabled and DualStack enabled - func testResolve111() throws { + func testResolve127() throws { let endpointParams = EndpointParams( region: "cn-northwest-1", useDualStack: true, @@ -2226,7 +2546,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region cn-northwest-1 with FIPS disabled and DualStack disabled - func testResolve112() throws { + func testResolve128() throws { let endpointParams = EndpointParams( region: "cn-northwest-1", useDualStack: false, @@ -2246,7 +2566,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-isob-east-1 with FIPS enabled and DualStack enabled - func testResolve113() throws { + func testResolve129() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: true, @@ -2265,7 +2585,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-isob-east-1 with FIPS enabled and DualStack disabled - func testResolve114() throws { + func testResolve130() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: false, @@ -2285,7 +2605,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-isob-east-1 with FIPS disabled and DualStack enabled - func testResolve115() throws { + func testResolve131() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: true, @@ -2304,7 +2624,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For region us-isob-east-1 with FIPS disabled and DualStack disabled - func testResolve116() throws { + func testResolve132() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: false, @@ -2324,7 +2644,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack disabled - func testResolve117() throws { + func testResolve133() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -2345,7 +2665,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve118() throws { + func testResolve134() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -2365,7 +2685,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve119() throws { + func testResolve135() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", diff --git a/Tests/Services/AWSAccountTests/EndpointResolverTest.swift b/Tests/Services/AWSAccountTests/EndpointResolverTest.swift index 3afc007c8d4..b9ff2255a6a 100644 --- a/Tests/Services/AWSAccountTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSAccountTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "account" + "signingName": "account", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "account" + "signingName": "account", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSBillingconductorTests/EndpointResolverTest.swift b/Tests/Services/AWSBillingconductorTests/EndpointResolverTest.swift index efa2c0e2985..bbcca7daf8f 100644 --- a/Tests/Services/AWSBillingconductorTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSBillingconductorTests/EndpointResolverTest.swift @@ -7,8 +7,128 @@ import SmithyTestUtil import XCTest class EndpointResolverTest: CrtXCBaseTestCase { - /// For region aws-global with FIPS disabled and DualStack disabled + /// For region cn-north-1 with FIPS enabled and DualStack enabled func testResolve1() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region aws-global with FIPS disabled and DualStack disabled + func testResolve7() throws { let endpointParams = EndpointParams( region: "aws-global", useDualStack: false, @@ -22,9 +142,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "billingconductor" + "signingName": "billingconductor", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -35,8 +155,216 @@ class EndpointResolverTest: CrtXCBaseTestCase { XCTAssertEqual(expected, actual) } + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingName": "billingconductor", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://billingconductor.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// For custom endpoint with fips disabled and dualstack disabled - func testResolve2() throws { + func testResolve18() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -57,7 +385,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve3() throws { + func testResolve19() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -77,7 +405,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve4() throws { + func testResolve20() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", diff --git a/Tests/Services/AWSBudgetsTests/EndpointResolverTest.swift b/Tests/Services/AWSBudgetsTests/EndpointResolverTest.swift index 6db54535e39..561b141fbc8 100644 --- a/Tests/Services/AWSBudgetsTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSBudgetsTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "budgets" + "signingName": "budgets", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "budgets" + "signingName": "budgets", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSChimeTests/EndpointResolverTest.swift b/Tests/Services/AWSChimeTests/EndpointResolverTest.swift index 45719d6c60b..c24ddee1fbc 100644 --- a/Tests/Services/AWSChimeTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSChimeTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "chime" + "signingName": "chime", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSCleanRoomsTests/EndpointResolverTest.swift b/Tests/Services/AWSCleanRoomsTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..5338f838c80 --- /dev/null +++ b/Tests/Services/AWSCleanRoomsTests/EndpointResolverTest.swift @@ -0,0 +1,467 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSCleanRooms +import AWSClientRuntime +import ClientRuntime +import SmithyTestUtil +import XCTest + +class EndpointResolverTest: CrtXCBaseTestCase { + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + func testResolve1() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack disabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack enabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled + func testResolve18() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack enabled + func testResolve19() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled + func testResolve20() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://cleanrooms.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips disabled and dualstack disabled + func testResolve21() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled and dualstack disabled + func testResolve22() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For custom endpoint with fips disabled and dualstack enabled + func testResolve23() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Dualstack and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + +} diff --git a/Tests/Services/AWSCloudFrontTests/EndpointResolverTest.swift b/Tests/Services/AWSCloudFrontTests/EndpointResolverTest.swift index 1227bd9beb8..c0660dd2a38 100644 --- a/Tests/Services/AWSCloudFrontTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSCloudFrontTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "cloudfront" + "signingName": "cloudfront", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSCostExplorerTests/EndpointResolverTest.swift b/Tests/Services/AWSCostExplorerTests/EndpointResolverTest.swift index c40e9781289..5761473424f 100644 --- a/Tests/Services/AWSCostExplorerTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSCostExplorerTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "ce" + "signingName": "ce", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "ce" + "signingName": "ce", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSEventBridgeTests/EndpointResolverTest.swift b/Tests/Services/AWSEventBridgeTests/EndpointResolverTest.swift index 3b2a442e48a..fa0e0f5f24a 100644 --- a/Tests/Services/AWSEventBridgeTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSEventBridgeTests/EndpointResolverTest.swift @@ -2798,11 +2798,11 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ + "name": "sigv4a", + "signingName": "events", "signingRegionSet": [ "*" - ] as [AnyHashable], - "name": "sigv4a", - "signingName": "events" + ] as [AnyHashable] ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2909,11 +2909,11 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ + "name": "sigv4a", + "signingName": "events", "signingRegionSet": [ "*" - ] as [AnyHashable], - "name": "sigv4a", - "signingName": "events" + ] as [AnyHashable] ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2941,11 +2941,11 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ + "name": "sigv4a", + "signingName": "events", "signingRegionSet": [ "*" - ] as [AnyHashable], - "name": "sigv4a", - "signingName": "events" + ] as [AnyHashable] ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSHealthTests/EndpointResolverTest.swift b/Tests/Services/AWSHealthTests/EndpointResolverTest.swift index c3061d54d1d..b593281f08a 100644 --- a/Tests/Services/AWSHealthTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSHealthTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "health" + "signingName": "health", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSIAMTests/EndpointResolverTest.swift b/Tests/Services/AWSIAMTests/EndpointResolverTest.swift index b67792b4ffe..f7170e8fe81 100644 --- a/Tests/Services/AWSIAMTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSIAMTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -78,9 +78,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-iso-east-1", "name": "sigv4", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-iso-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -106,9 +106,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-isob-east-1", "name": "sigv4", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-isob-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -134,9 +134,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "iam" + "signingName": "iam", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSKendraRankingTests/EndpointResolverTest.swift b/Tests/Services/AWSKendraRankingTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..0bdf7aeafb4 --- /dev/null +++ b/Tests/Services/AWSKendraRankingTests/EndpointResolverTest.swift @@ -0,0 +1,581 @@ +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSKendraRanking +import AWSClientRuntime +import ClientRuntime +import SmithyTestUtil +import XCTest + +class EndpointResolverTest: CrtXCBaseTestCase { + /// For region ca-central-1 with FIPS enabled and DualStack enabled + func testResolve1() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS enabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS disabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS disabled and DualStack disabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS enabled and DualStack disabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS disabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS disabled and DualStack disabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS enabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS disabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS enabled and DualStack enabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS enabled and DualStack disabled + func testResolve18() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS disabled and DualStack enabled + func testResolve19() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS disabled and DualStack disabled + func testResolve20() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve21() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve22() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve23() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve24() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS enabled and DualStack enabled + func testResolve25() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS enabled and DualStack disabled + func testResolve26() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking-fips.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS disabled and DualStack enabled + func testResolve27() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS disabled and DualStack disabled + func testResolve28() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-ranking.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips disabled and dualstack disabled + func testResolve29() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled and dualstack disabled + func testResolve30() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + +} diff --git a/Tests/Services/AWSKendraTests/EndpointResolverTest.swift b/Tests/Services/AWSKendraTests/EndpointResolverTest.swift index 5f32a526d1f..aea33e2cbba 100644 --- a/Tests/Services/AWSKendraTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSKendraTests/EndpointResolverTest.swift @@ -7,8 +7,968 @@ import SmithyTestUtil import XCTest class EndpointResolverTest: CrtXCBaseTestCase { + /// For region ap-south-1 with FIPS enabled and DualStack enabled + func testResolve1() throws { + let endpointParams = EndpointParams( + region: "ap-south-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-south-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-1 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "ap-south-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-south-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-1 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "ap-south-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-south-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "ap-south-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-south-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS enabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ca-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS disabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ca-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS disabled and DualStack disabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ca-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "eu-central-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-1 with FIPS enabled and DualStack disabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "eu-central-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-1 with FIPS disabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "eu-central-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-central-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-1 with FIPS disabled and DualStack disabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "eu-central-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS enabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS disabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-2 with FIPS enabled and DualStack enabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "eu-west-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-2 with FIPS enabled and DualStack disabled + func testResolve18() throws { + let endpointParams = EndpointParams( + region: "eu-west-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-2 with FIPS disabled and DualStack enabled + func testResolve19() throws { + let endpointParams = EndpointParams( + region: "eu-west-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-west-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-2 with FIPS disabled and DualStack disabled + func testResolve20() throws { + let endpointParams = EndpointParams( + region: "eu-west-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS enabled and DualStack enabled + func testResolve21() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS enabled and DualStack disabled + func testResolve22() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.eu-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS disabled and DualStack enabled + func testResolve23() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS disabled and DualStack disabled + func testResolve24() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.eu-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-northeast-1 with FIPS enabled and DualStack enabled + func testResolve25() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-northeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-northeast-1 with FIPS enabled and DualStack disabled + func testResolve26() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-northeast-1 with FIPS disabled and DualStack enabled + func testResolve27() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-northeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-northeast-1 with FIPS disabled and DualStack disabled + func testResolve28() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS enabled and DualStack enabled + func testResolve29() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS enabled and DualStack disabled + func testResolve30() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS disabled and DualStack enabled + func testResolve31() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-gov-west-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-west-1 with FIPS disabled and DualStack disabled + func testResolve32() throws { + let endpointParams = EndpointParams( + region: "us-gov-west-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS enabled and DualStack enabled + func testResolve33() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS enabled and DualStack disabled + func testResolve34() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS disabled and DualStack enabled + func testResolve35() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-southeast-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS disabled and DualStack disabled + func testResolve36() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS enabled and DualStack enabled + func testResolve37() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS enabled and DualStack disabled + func testResolve38() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS disabled and DualStack enabled + func testResolve39() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-southeast-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS disabled and DualStack disabled + func testResolve40() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve41() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve42() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve43() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve44() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS enabled and DualStack enabled + func testResolve45() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS enabled and DualStack disabled + func testResolve46() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra-fips.us-east-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS disabled and DualStack enabled + func testResolve47() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-east-2.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS disabled and DualStack disabled + func testResolve48() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://kendra.us-east-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// For custom endpoint with fips disabled and dualstack disabled - func testResolve1() throws { + func testResolve49() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -29,7 +989,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve2() throws { + func testResolve50() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -49,7 +1009,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve3() throws { + func testResolve51() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", diff --git a/Tests/Services/AWSLocationTests/EndpointResolverTest.swift b/Tests/Services/AWSLocationTests/EndpointResolverTest.swift index 8f3e925b82c..feafe48485a 100644 --- a/Tests/Services/AWSLocationTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSLocationTests/EndpointResolverTest.swift @@ -7,10 +7,10 @@ import SmithyTestUtil import XCTest class EndpointResolverTest: CrtXCBaseTestCase { - /// For region eu-central-1 with FIPS enabled and DualStack enabled + /// For region cn-north-1 with FIPS enabled and DualStack enabled func testResolve1() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "cn-north-1", useDualStack: true, useFIPS: true ) @@ -22,15 +22,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS enabled and DualStack disabled + /// For region cn-north-1 with FIPS enabled and DualStack disabled func testResolve2() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "cn-north-1", useDualStack: false, useFIPS: true ) @@ -42,15 +42,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS disabled and DualStack enabled + /// For region cn-north-1 with FIPS disabled and DualStack enabled func testResolve3() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "cn-north-1", useDualStack: true, useFIPS: false ) @@ -62,15 +62,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS disabled and DualStack disabled + /// For region cn-north-1 with FIPS disabled and DualStack disabled func testResolve4() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "cn-north-1", useDualStack: false, useFIPS: false ) @@ -82,355 +82,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-2 with FIPS enabled and DualStack enabled + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled func testResolve5() throws { let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-west-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-west-2 with FIPS enabled and DualStack disabled - func testResolve6() throws { - let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-west-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-west-2 with FIPS disabled and DualStack enabled - func testResolve7() throws { - let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-west-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-west-2 with FIPS disabled and DualStack disabled - func testResolve8() throws { - let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-west-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS enabled and DualStack enabled - func testResolve9() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-north-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS enabled and DualStack disabled - func testResolve10() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-north-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS disabled and DualStack enabled - func testResolve11() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-north-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS disabled and DualStack disabled - func testResolve12() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-north-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS enabled and DualStack enabled - func testResolve13() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS enabled and DualStack disabled - func testResolve14() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.eu-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS disabled and DualStack enabled - func testResolve15() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS disabled and DualStack disabled - func testResolve16() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.eu-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS enabled and DualStack enabled - func testResolve17() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-northeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS enabled and DualStack disabled - func testResolve18() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS disabled and DualStack enabled - func testResolve19() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-northeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS disabled and DualStack disabled - func testResolve20() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS enabled and DualStack enabled - func testResolve21() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-southeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS enabled and DualStack disabled - func testResolve22() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", + region: "us-iso-east-1", useDualStack: false, useFIPS: true ) @@ -442,35 +102,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS disabled and DualStack enabled - func testResolve23() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-southeast-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-southeast-1 with FIPS disabled and DualStack disabled - func testResolve24() throws { + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve6() throws { let endpointParams = EndpointParams( - region: "ap-southeast-1", + region: "us-iso-east-1", useDualStack: false, useFIPS: false ) @@ -482,15 +122,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-southeast-2 with FIPS enabled and DualStack enabled - func testResolve25() throws { + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve7() throws { let endpointParams = EndpointParams( - region: "ap-southeast-2", + region: "us-east-1", useDualStack: true, useFIPS: true ) @@ -502,15 +142,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-southeast-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-southeast-2 with FIPS enabled and DualStack disabled - func testResolve26() throws { + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve8() throws { let endpointParams = EndpointParams( - region: "ap-southeast-2", + region: "us-east-1", useDualStack: false, useFIPS: true ) @@ -522,15 +162,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-southeast-2 with FIPS disabled and DualStack enabled - func testResolve27() throws { + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve9() throws { let endpointParams = EndpointParams( - region: "ap-southeast-2", + region: "us-east-1", useDualStack: true, useFIPS: false ) @@ -542,15 +182,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-southeast-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-southeast-2 with FIPS disabled and DualStack disabled - func testResolve28() throws { + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve10() throws { let endpointParams = EndpointParams( - region: "ap-southeast-2", + region: "us-east-1", useDualStack: false, useFIPS: false ) @@ -562,15 +202,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS enabled and DualStack enabled - func testResolve29() throws { + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + func testResolve11() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "us-gov-east-1", useDualStack: true, useFIPS: true ) @@ -582,15 +222,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS enabled and DualStack disabled - func testResolve30() throws { + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + func testResolve12() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "us-gov-east-1", useDualStack: false, useFIPS: true ) @@ -602,15 +242,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS disabled and DualStack enabled - func testResolve31() throws { + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + func testResolve13() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "us-gov-east-1", useDualStack: true, useFIPS: false ) @@ -622,15 +262,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-gov-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS disabled and DualStack disabled - func testResolve32() throws { + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + func testResolve14() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "us-gov-east-1", useDualStack: false, useFIPS: false ) @@ -642,35 +282,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-2 with FIPS enabled and DualStack enabled - func testResolve33() throws { - let endpointParams = EndpointParams( - region: "us-east-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-2 with FIPS enabled and DualStack disabled - func testResolve34() throws { + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled + func testResolve15() throws { let endpointParams = EndpointParams( - region: "us-east-2", + region: "us-isob-east-1", useDualStack: false, useFIPS: true ) @@ -682,35 +302,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-east-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-2 with FIPS disabled and DualStack enabled - func testResolve35() throws { - let endpointParams = EndpointParams( - region: "us-east-2", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-2 with FIPS disabled and DualStack disabled - func testResolve36() throws { + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled + func testResolve16() throws { let endpointParams = EndpointParams( - region: "us-east-2", + region: "us-isob-east-1", useDualStack: false, useFIPS: false ) @@ -722,13 +322,13 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-east-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://geo.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } /// For custom endpoint with fips disabled and dualstack disabled - func testResolve37() throws { + func testResolve17() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -749,7 +349,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve38() throws { + func testResolve18() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -769,7 +369,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve39() throws { + func testResolve19() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", diff --git a/Tests/Services/AWSNetworkManagerTests/EndpointResolverTest.swift b/Tests/Services/AWSNetworkManagerTests/EndpointResolverTest.swift index 326f4bdda34..72278aff72a 100644 --- a/Tests/Services/AWSNetworkManagerTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSNetworkManagerTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "networkmanager" + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSOrganizationsTests/EndpointResolverTest.swift b/Tests/Services/AWSOrganizationsTests/EndpointResolverTest.swift index ba8afc9cf1b..4766ea61171 100644 --- a/Tests/Services/AWSOrganizationsTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSOrganizationsTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -78,9 +78,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "organizations" + "signingName": "organizations", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSRAMTests/EndpointResolverTest.swift b/Tests/Services/AWSRAMTests/EndpointResolverTest.swift index 50fd511b22e..fcd74e26dd4 100644 --- a/Tests/Services/AWSRAMTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSRAMTests/EndpointResolverTest.swift @@ -7,12 +7,12 @@ import SmithyTestUtil import XCTest class EndpointResolverTest: CrtXCBaseTestCase { - /// For region ap-south-1 with FIPS enabled and DualStack enabled + /// For region cn-north-1 with FIPS disabled and DualStack disabled func testResolve1() throws { let endpointParams = EndpointParams( - region: "ap-south-1", - useDualStack: true, - useFIPS: true + region: "cn-north-1", + useDualStack: false, + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -22,17 +22,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-south-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-south-1 with FIPS enabled and DualStack disabled + /// For region cn-northwest-1 with FIPS disabled and DualStack disabled func testResolve2() throws { let endpointParams = EndpointParams( - region: "ap-south-1", + region: "cn-northwest-1", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -42,17 +42,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-south-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-northwest-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-south-1 with FIPS disabled and DualStack enabled + /// For region cn-north-1 with FIPS enabled and DualStack enabled func testResolve3() throws { let endpointParams = EndpointParams( - region: "ap-south-1", + region: "cn-north-1", useDualStack: true, - useFIPS: false + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -62,17 +62,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-south-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ap-south-1 with FIPS disabled and DualStack disabled + /// For region cn-north-1 with FIPS enabled and DualStack disabled func testResolve4() throws { let endpointParams = EndpointParams( - region: "ap-south-1", + region: "cn-north-1", useDualStack: false, - useFIPS: false + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -82,17 +82,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-south-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-south-1 with FIPS enabled and DualStack enabled + /// For region cn-north-1 with FIPS disabled and DualStack enabled func testResolve5() throws { let endpointParams = EndpointParams( - region: "eu-south-1", + region: "cn-north-1", useDualStack: true, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -102,17 +102,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-south-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-south-1 with FIPS enabled and DualStack disabled + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled func testResolve6() throws { let endpointParams = EndpointParams( - region: "eu-south-1", + region: "us-isob-east-1", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -122,17 +122,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-south-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-south-1 with FIPS disabled and DualStack enabled + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled func testResolve7() throws { let endpointParams = EndpointParams( - region: "eu-south-1", - useDualStack: true, - useFIPS: false + region: "us-isob-east-1", + useDualStack: false, + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -142,15 +142,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-south-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-south-1 with FIPS disabled and DualStack disabled + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled func testResolve8() throws { let endpointParams = EndpointParams( - region: "eu-south-1", + region: "us-gov-east-1", useDualStack: false, useFIPS: false ) @@ -162,16 +162,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-south-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled func testResolve9() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", - useDualStack: true, + useDualStack: false, useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -182,17 +182,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + /// For region us-gov-west-1 with FIPS disabled and DualStack disabled func testResolve10() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", + region: "us-gov-west-1", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -202,17 +202,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + /// For region us-gov-west-1 with FIPS enabled and DualStack disabled func testResolve11() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", - useDualStack: true, - useFIPS: false + region: "us-gov-west-1", + useDualStack: false, + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -222,17 +222,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled func testResolve12() throws { let endpointParams = EndpointParams( region: "us-gov-east-1", - useDualStack: false, - useFIPS: false + useDualStack: true, + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -242,17 +242,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region me-central-1 with FIPS enabled and DualStack enabled + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled func testResolve13() throws { let endpointParams = EndpointParams( - region: "me-central-1", + region: "us-gov-east-1", useDualStack: true, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -262,17 +262,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.me-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region me-central-1 with FIPS enabled and DualStack disabled + /// For region us-east-2 with FIPS disabled and DualStack disabled func testResolve14() throws { let endpointParams = EndpointParams( - region: "me-central-1", + region: "us-east-2", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -282,17 +282,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.me-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region me-central-1 with FIPS disabled and DualStack enabled + /// For region us-east-2 with FIPS enabled and DualStack disabled func testResolve15() throws { let endpointParams = EndpointParams( - region: "me-central-1", - useDualStack: true, - useFIPS: false + region: "us-east-2", + useDualStack: false, + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -302,15 +302,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.me-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region me-central-1 with FIPS disabled and DualStack disabled + /// For region eu-north-1 with FIPS disabled and DualStack disabled func testResolve16() throws { let endpointParams = EndpointParams( - region: "me-central-1", + region: "eu-north-1", useDualStack: false, useFIPS: false ) @@ -322,17 +322,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.me-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-north-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ca-central-1 with FIPS enabled and DualStack enabled + /// For region me-south-1 with FIPS disabled and DualStack disabled func testResolve17() throws { let endpointParams = EndpointParams( - region: "ca-central-1", - useDualStack: true, - useFIPS: true + region: "me-south-1", + useDualStack: false, + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -342,17 +342,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ca-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.me-south-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ca-central-1 with FIPS enabled and DualStack disabled + /// For region eu-west-3 with FIPS disabled and DualStack disabled func testResolve18() throws { let endpointParams = EndpointParams( - region: "ca-central-1", + region: "eu-west-3", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -362,16 +362,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ca-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-3.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ca-central-1 with FIPS disabled and DualStack enabled + /// For region eu-west-2 with FIPS disabled and DualStack disabled func testResolve19() throws { let endpointParams = EndpointParams( - region: "ca-central-1", - useDualStack: true, + region: "eu-west-2", + useDualStack: false, useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -382,15 +382,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ca-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region ca-central-1 with FIPS disabled and DualStack disabled + /// For region eu-west-1 with FIPS disabled and DualStack disabled func testResolve20() throws { let endpointParams = EndpointParams( - region: "ca-central-1", + region: "eu-west-1", useDualStack: false, useFIPS: false ) @@ -402,17 +402,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ca-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS enabled and DualStack enabled + /// For region us-east-1 with FIPS disabled and DualStack disabled func testResolve21() throws { let endpointParams = EndpointParams( - region: "eu-central-1", - useDualStack: true, - useFIPS: true + region: "us-east-1", + useDualStack: false, + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -422,15 +422,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS enabled and DualStack disabled + /// For region us-east-1 with FIPS enabled and DualStack disabled func testResolve22() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "us-east-1", useDualStack: false, useFIPS: true ) @@ -442,16 +442,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS disabled and DualStack enabled + /// For region ap-northeast-3 with FIPS disabled and DualStack disabled func testResolve23() throws { let endpointParams = EndpointParams( - region: "eu-central-1", - useDualStack: true, + region: "ap-northeast-3", + useDualStack: false, useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -462,15 +462,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-central-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-3.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region eu-central-1 with FIPS disabled and DualStack disabled + /// For region ap-northeast-2 with FIPS disabled and DualStack disabled func testResolve24() throws { let endpointParams = EndpointParams( - region: "eu-central-1", + region: "ap-northeast-2", useDualStack: false, useFIPS: false ) @@ -482,36 +482,37 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-central-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-iso-west-1 with FIPS enabled and DualStack enabled + /// For region ap-northeast-1 with FIPS disabled and DualStack disabled func testResolve25() throws { let endpointParams = EndpointParams( - region: "us-iso-west-1", - useDualStack: true, - useFIPS: true + region: "ap-northeast-1", + useDualStack: false, + useFIPS: false ) let resolver = try DefaultEndpointResolver() - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) - default: - XCTFail() - } - } + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) } - /// For region us-iso-west-1 with FIPS enabled and DualStack disabled + /// For region ap-south-1 with FIPS disabled and DualStack disabled func testResolve26() throws { let endpointParams = EndpointParams( - region: "us-iso-west-1", + region: "ap-south-1", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -521,34 +522,35 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-iso-west-1.c2s.ic.gov", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-south-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-iso-west-1 with FIPS disabled and DualStack enabled + /// For region af-south-1 with FIPS disabled and DualStack disabled func testResolve27() throws { let endpointParams = EndpointParams( - region: "us-iso-west-1", - useDualStack: true, + region: "af-south-1", + useDualStack: false, useFIPS: false ) let resolver = try DefaultEndpointResolver() - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) - default: - XCTFail() - } - } + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = Headers() + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.af-south-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) } - /// For region us-iso-west-1 with FIPS disabled and DualStack disabled + /// For region us-west-2 with FIPS disabled and DualStack disabled func testResolve28() throws { let endpointParams = EndpointParams( - region: "us-iso-west-1", + region: "us-west-2", useDualStack: false, useFIPS: false ) @@ -560,16 +562,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-iso-west-1.c2s.ic.gov", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-1 with FIPS enabled and DualStack enabled + /// For region us-west-2 with FIPS enabled and DualStack disabled func testResolve29() throws { let endpointParams = EndpointParams( - region: "us-west-1", - useDualStack: true, + region: "us-west-2", + useDualStack: false, useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -580,17 +582,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-1 with FIPS enabled and DualStack disabled + /// For region us-west-1 with FIPS disabled and DualStack disabled func testResolve30() throws { let endpointParams = EndpointParams( region: "us-west-1", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -600,17 +602,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-1 with FIPS disabled and DualStack enabled + /// For region us-west-1 with FIPS enabled and DualStack disabled func testResolve31() throws { let endpointParams = EndpointParams( region: "us-west-1", - useDualStack: true, - useFIPS: false + useDualStack: false, + useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -620,15 +622,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-1 with FIPS disabled and DualStack disabled + /// For region ca-central-1 with FIPS disabled and DualStack disabled func testResolve32() throws { let endpointParams = EndpointParams( - region: "us-west-1", + region: "ca-central-1", useDualStack: false, useFIPS: false ) @@ -640,16 +642,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-1.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ca-central-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-2 with FIPS enabled and DualStack enabled + /// For region ca-central-1 with FIPS enabled and DualStack disabled func testResolve33() throws { let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: true, + region: "ca-central-1", + useDualStack: false, useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -660,17 +662,17 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ca-central-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-2 with FIPS enabled and DualStack disabled + /// For region ap-southeast-3 with FIPS disabled and DualStack disabled func testResolve34() throws { let endpointParams = EndpointParams( - region: "us-west-2", + region: "ap-southeast-3", useDualStack: false, - useFIPS: true + useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -680,16 +682,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-west-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-3.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-2 with FIPS disabled and DualStack enabled + /// For region ap-southeast-2 with FIPS disabled and DualStack disabled func testResolve35() throws { let endpointParams = EndpointParams( - region: "us-west-2", - useDualStack: true, + region: "ap-southeast-2", + useDualStack: false, useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -700,15 +702,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-west-2 with FIPS disabled and DualStack disabled + /// For region ap-southeast-1 with FIPS disabled and DualStack disabled func testResolve36() throws { let endpointParams = EndpointParams( - region: "us-west-2", + region: "ap-southeast-1", useDualStack: false, useFIPS: false ) @@ -720,1414 +722,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-west-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region af-south-1 with FIPS enabled and DualStack enabled - func testResolve37() throws { - let endpointParams = EndpointParams( - region: "af-south-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.af-south-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region af-south-1 with FIPS enabled and DualStack disabled - func testResolve38() throws { - let endpointParams = EndpointParams( - region: "af-south-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.af-south-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region af-south-1 with FIPS disabled and DualStack enabled - func testResolve39() throws { - let endpointParams = EndpointParams( - region: "af-south-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.af-south-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region af-south-1 with FIPS disabled and DualStack disabled - func testResolve40() throws { - let endpointParams = EndpointParams( - region: "af-south-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.af-south-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS enabled and DualStack enabled - func testResolve41() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-north-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS enabled and DualStack disabled - func testResolve42() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-north-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS disabled and DualStack enabled - func testResolve43() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-north-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-north-1 with FIPS disabled and DualStack disabled - func testResolve44() throws { - let endpointParams = EndpointParams( - region: "eu-north-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-north-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-3 with FIPS enabled and DualStack enabled - func testResolve45() throws { - let endpointParams = EndpointParams( - region: "eu-west-3", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-3 with FIPS enabled and DualStack disabled - func testResolve46() throws { - let endpointParams = EndpointParams( - region: "eu-west-3", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-3 with FIPS disabled and DualStack enabled - func testResolve47() throws { - let endpointParams = EndpointParams( - region: "eu-west-3", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-3 with FIPS disabled and DualStack disabled - func testResolve48() throws { - let endpointParams = EndpointParams( - region: "eu-west-3", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-2 with FIPS enabled and DualStack enabled - func testResolve49() throws { - let endpointParams = EndpointParams( - region: "eu-west-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-2 with FIPS enabled and DualStack disabled - func testResolve50() throws { - let endpointParams = EndpointParams( - region: "eu-west-2", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-2 with FIPS disabled and DualStack enabled - func testResolve51() throws { - let endpointParams = EndpointParams( - region: "eu-west-2", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-2 with FIPS disabled and DualStack disabled - func testResolve52() throws { - let endpointParams = EndpointParams( - region: "eu-west-2", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS enabled and DualStack enabled - func testResolve53() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS enabled and DualStack disabled - func testResolve54() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.eu-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS disabled and DualStack enabled - func testResolve55() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region eu-west-1 with FIPS disabled and DualStack disabled - func testResolve56() throws { - let endpointParams = EndpointParams( - region: "eu-west-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-3 with FIPS enabled and DualStack enabled - func testResolve57() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-3", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-3 with FIPS enabled and DualStack disabled - func testResolve58() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-3", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-3 with FIPS disabled and DualStack enabled - func testResolve59() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-3", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-3 with FIPS disabled and DualStack disabled - func testResolve60() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-3", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-2 with FIPS enabled and DualStack enabled - func testResolve61() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-2 with FIPS enabled and DualStack disabled - func testResolve62() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-2", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-2 with FIPS disabled and DualStack enabled - func testResolve63() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-2", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-2 with FIPS disabled and DualStack disabled - func testResolve64() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-2", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS enabled and DualStack enabled - func testResolve65() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS enabled and DualStack disabled - func testResolve66() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS disabled and DualStack enabled - func testResolve67() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-northeast-1 with FIPS disabled and DualStack disabled - func testResolve68() throws { - let endpointParams = EndpointParams( - region: "ap-northeast-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region me-south-1 with FIPS enabled and DualStack enabled - func testResolve69() throws { - let endpointParams = EndpointParams( - region: "me-south-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.me-south-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region me-south-1 with FIPS enabled and DualStack disabled - func testResolve70() throws { - let endpointParams = EndpointParams( - region: "me-south-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.me-south-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region me-south-1 with FIPS disabled and DualStack enabled - func testResolve71() throws { - let endpointParams = EndpointParams( - region: "me-south-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.me-south-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region me-south-1 with FIPS disabled and DualStack disabled - func testResolve72() throws { - let endpointParams = EndpointParams( - region: "me-south-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.me-south-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region sa-east-1 with FIPS enabled and DualStack enabled - func testResolve73() throws { - let endpointParams = EndpointParams( - region: "sa-east-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.sa-east-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region sa-east-1 with FIPS enabled and DualStack disabled - func testResolve74() throws { - let endpointParams = EndpointParams( - region: "sa-east-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.sa-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region sa-east-1 with FIPS disabled and DualStack enabled - func testResolve75() throws { - let endpointParams = EndpointParams( - region: "sa-east-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.sa-east-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region sa-east-1 with FIPS disabled and DualStack disabled - func testResolve76() throws { - let endpointParams = EndpointParams( - region: "sa-east-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.sa-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-east-1 with FIPS enabled and DualStack enabled - func testResolve77() throws { - let endpointParams = EndpointParams( - region: "ap-east-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-east-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-east-1 with FIPS enabled and DualStack disabled - func testResolve78() throws { - let endpointParams = EndpointParams( - region: "ap-east-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-east-1 with FIPS disabled and DualStack enabled - func testResolve79() throws { - let endpointParams = EndpointParams( - region: "ap-east-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-east-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-east-1 with FIPS disabled and DualStack disabled - func testResolve80() throws { - let endpointParams = EndpointParams( - region: "ap-east-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region cn-north-1 with FIPS enabled and DualStack enabled - func testResolve81() throws { - let endpointParams = EndpointParams( - region: "cn-north-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region cn-north-1 with FIPS enabled and DualStack disabled - func testResolve82() throws { - let endpointParams = EndpointParams( - region: "cn-north-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region cn-north-1 with FIPS disabled and DualStack enabled - func testResolve83() throws { - let endpointParams = EndpointParams( - region: "cn-north-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region cn-north-1 with FIPS disabled and DualStack disabled - func testResolve84() throws { - let endpointParams = EndpointParams( - region: "cn-north-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-gov-west-1 with FIPS enabled and DualStack enabled - func testResolve85() throws { - let endpointParams = EndpointParams( - region: "us-gov-west-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-gov-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-gov-west-1 with FIPS enabled and DualStack disabled - func testResolve86() throws { - let endpointParams = EndpointParams( - region: "us-gov-west-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-gov-west-1 with FIPS disabled and DualStack enabled - func testResolve87() throws { - let endpointParams = EndpointParams( - region: "us-gov-west-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-west-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-gov-west-1 with FIPS disabled and DualStack disabled - func testResolve88() throws { - let endpointParams = EndpointParams( - region: "us-gov-west-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS enabled and DualStack enabled - func testResolve89() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS enabled and DualStack disabled - func testResolve90() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS disabled and DualStack enabled - func testResolve91() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-1.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-1 with FIPS disabled and DualStack disabled - func testResolve92() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-2 with FIPS enabled and DualStack enabled - func testResolve93() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-2 with FIPS enabled and DualStack disabled - func testResolve94() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-2", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-2 with FIPS disabled and DualStack enabled - func testResolve95() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-2", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-2.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-2 with FIPS disabled and DualStack disabled - func testResolve96() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-2", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-iso-east-1 with FIPS enabled and DualStack enabled - func testResolve97() throws { - let endpointParams = EndpointParams( - region: "us-iso-east-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) - default: - XCTFail() - } - } - } - - /// For region us-iso-east-1 with FIPS enabled and DualStack disabled - func testResolve98() throws { - let endpointParams = EndpointParams( - region: "us-iso-east-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-iso-east-1 with FIPS disabled and DualStack enabled - func testResolve99() throws { - let endpointParams = EndpointParams( - region: "us-iso-east-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) - default: - XCTFail() - } - } - } - - /// For region us-iso-east-1 with FIPS disabled and DualStack disabled - func testResolve100() throws { - let endpointParams = EndpointParams( - region: "us-iso-east-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-3 with FIPS enabled and DualStack enabled - func testResolve101() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-3", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-3 with FIPS enabled and DualStack disabled - func testResolve102() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-3", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.ap-southeast-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-3 with FIPS disabled and DualStack enabled - func testResolve103() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-3", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-3.api.aws", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region ap-southeast-3 with FIPS disabled and DualStack disabled - func testResolve104() throws { - let endpointParams = EndpointParams( - region: "ap-southeast-3", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-3.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-1 with FIPS enabled and DualStack enabled - func testResolve105() throws { - let endpointParams = EndpointParams( - region: "us-east-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS enabled and DualStack disabled - func testResolve106() throws { + /// For region eu-central-1 with FIPS disabled and DualStack disabled + func testResolve37() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "eu-central-1", useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-1 with FIPS disabled and DualStack enabled - func testResolve107() throws { - let endpointParams = EndpointParams( - region: "us-east-1", - useDualStack: true, useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -2138,15 +742,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-1.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-central-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-1 with FIPS disabled and DualStack disabled - func testResolve108() throws { + /// For region eu-south-1 with FIPS disabled and DualStack disabled + func testResolve38() throws { let endpointParams = EndpointParams( - region: "us-east-1", + region: "eu-south-1", useDualStack: false, useFIPS: false ) @@ -2158,56 +762,16 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-1.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-2 with FIPS enabled and DualStack enabled - func testResolve109() throws { - let endpointParams = EndpointParams( - region: "us-east-2", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.eu-south-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-2 with FIPS enabled and DualStack disabled - func testResolve110() throws { + /// For region ap-east-1 with FIPS disabled and DualStack disabled + func testResolve39() throws { let endpointParams = EndpointParams( - region: "us-east-2", + region: "ap-east-1", useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-2.amazonaws.com", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-east-2 with FIPS disabled and DualStack enabled - func testResolve111() throws { - let endpointParams = EndpointParams( - region: "us-east-2", - useDualStack: true, useFIPS: false ) let resolver = try DefaultEndpointResolver() @@ -2218,15 +782,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-2.api.aws", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.ap-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-east-2 with FIPS disabled and DualStack disabled - func testResolve112() throws { + /// For region sa-east-1 with FIPS disabled and DualStack disabled + func testResolve40() throws { let endpointParams = EndpointParams( - region: "us-east-2", + region: "sa-east-1", useDualStack: false, useFIPS: false ) @@ -2238,15 +802,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-2.amazonaws.com", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.sa-east-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-northwest-1 with FIPS enabled and DualStack enabled - func testResolve113() throws { + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve41() throws { let endpointParams = EndpointParams( - region: "cn-northwest-1", + region: "us-east-1", useDualStack: true, useFIPS: true ) @@ -2258,35 +822,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region cn-northwest-1 with FIPS enabled and DualStack disabled - func testResolve114() throws { - let endpointParams = EndpointParams( - region: "cn-northwest-1", - useDualStack: false, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.cn-northwest-1.amazonaws.com.cn", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-northwest-1 with FIPS disabled and DualStack enabled - func testResolve115() throws { + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve42() throws { let endpointParams = EndpointParams( - region: "cn-northwest-1", + region: "us-east-1", useDualStack: true, useFIPS: false ) @@ -2298,15 +842,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-east-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-northwest-1 with FIPS disabled and DualStack disabled - func testResolve116() throws { + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve43() throws { let endpointParams = EndpointParams( - region: "cn-northwest-1", + region: "us-iso-east-1", useDualStack: false, useFIPS: false ) @@ -2318,34 +862,15 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.cn-northwest-1.amazonaws.com.cn", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-isob-east-1 with FIPS enabled and DualStack enabled - func testResolve117() throws { - let endpointParams = EndpointParams( - region: "us-isob-east-1", - useDualStack: true, - useFIPS: true - ) - let resolver = try DefaultEndpointResolver() - - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) - default: - XCTFail() - } - } - } - - /// For region us-isob-east-1 with FIPS enabled and DualStack disabled - func testResolve118() throws { + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled + func testResolve44() throws { let endpointParams = EndpointParams( - region: "us-isob-east-1", + region: "us-iso-east-1", useDualStack: false, useFIPS: true ) @@ -2357,52 +882,13 @@ class EndpointResolverTest: CrtXCBaseTestCase { [:] let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) - - XCTAssertEqual(expected, actual) - } - - /// For region us-isob-east-1 with FIPS disabled and DualStack enabled - func testResolve119() throws { - let endpointParams = EndpointParams( - region: "us-isob-east-1", - useDualStack: true, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in - switch error { - case EndpointError.unresolved(let message): - XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) - default: - XCTFail() - } - } - } - - /// For region us-isob-east-1 with FIPS disabled and DualStack disabled - func testResolve120() throws { - let endpointParams = EndpointParams( - region: "us-isob-east-1", - useDualStack: false, - useFIPS: false - ) - let resolver = try DefaultEndpointResolver() - - let actual = try resolver.resolve(params: endpointParams) - - let properties: [String: AnyHashable] = - [:] - - let headers = Headers() - let expected = try ClientRuntime.Endpoint(urlString: "https://ram.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + let expected = try ClientRuntime.Endpoint(urlString: "https://ram-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } /// For custom endpoint with fips disabled and dualstack disabled - func testResolve121() throws { + func testResolve45() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -2423,7 +909,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips enabled and dualstack disabled - func testResolve122() throws { + func testResolve46() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", @@ -2443,7 +929,7 @@ class EndpointResolverTest: CrtXCBaseTestCase { } /// For custom endpoint with fips disabled and dualstack enabled - func testResolve123() throws { + func testResolve47() throws { let endpointParams = EndpointParams( endpoint: "https://example.com", region: "us-east-1", diff --git a/Tests/Services/AWSRoute53RecoveryControlConfigTests/EndpointResolverTest.swift b/Tests/Services/AWSRoute53RecoveryControlConfigTests/EndpointResolverTest.swift index edb3a0e4e44..21163929219 100644 --- a/Tests/Services/AWSRoute53RecoveryControlConfigTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSRoute53RecoveryControlConfigTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "route53-recovery-control-config" + "signingName": "route53-recovery-control-config", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSRoute53Tests/EndpointResolverTest.swift b/Tests/Services/AWSRoute53Tests/EndpointResolverTest.swift index f1902875cd0..8e717b8adaa 100644 --- a/Tests/Services/AWSRoute53Tests/EndpointResolverTest.swift +++ b/Tests/Services/AWSRoute53Tests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-northwest-1", "name": "sigv4", - "signingName": "route53" + "signingName": "route53", + "signingRegion": "cn-northwest-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "route53" + "signingName": "route53", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -78,9 +78,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-iso-east-1", "name": "sigv4", - "signingName": "route53" + "signingName": "route53", + "signingRegion": "us-iso-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -106,9 +106,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-isob-east-1", "name": "sigv4", - "signingName": "route53" + "signingName": "route53", + "signingRegion": "us-isob-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -134,9 +134,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "route53" + "signingName": "route53", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSRoute53Tests/ListResourceRecordSetsRequestTest.swift b/Tests/Services/AWSRoute53Tests/ListResourceRecordSetsRequestTest.swift index c568156e223..c660e818d23 100644 --- a/Tests/Services/AWSRoute53Tests/ListResourceRecordSetsRequestTest.swift +++ b/Tests/Services/AWSRoute53Tests/ListResourceRecordSetsRequestTest.swift @@ -28,7 +28,6 @@ class ListResourceRecordSetsRequestTest: HttpRequestTestBase { let input = ListResourceRecordSetsInput( hostedZoneId: "/hostedzone/IDOFMYHOSTEDZONE" ) - let endpointParams = EndpointParams() let encoder = ClientRuntime.XMLEncoder() encoder.dateEncodingStrategy = .secondsSince1970 encoder.nonConformingFloatEncodingStrategy = .convertToString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") @@ -39,7 +38,13 @@ class ListResourceRecordSetsRequestTest: HttpRequestTestBase { var operationStack = OperationStack(id: "ListResourceRecordSetsTrimHostedZone") operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware(urlPrefix: urlPrefix)) operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(host: hostOnly)) - operationStack.buildStep.intercept(position: .after, middleware: EndpointResolverMiddleware(endpointResolver: try DefaultEndpointResolver(), endpointParams: endpointParams)) + operationStack.buildStep.intercept(position: .after, id: "RequestTestEndpointResolver") { (context, input, next) -> ClientRuntime.OperationOutput in + input.withMethod(context.getMethod()) + input.withPath(context.getPath()) + let host = "\(context.getHostPrefix() ?? "")\(context.getHost() ?? "")" + input.withHost(host) + return try await next.handle(context: context, input: input) + } operationStack.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operationStack.deserializeStep.intercept(position: .after, middleware: MockDeserializeMiddleware( diff --git a/Tests/Services/AWSS3ControlTests/EndpointResolverTest.swift b/Tests/Services/AWSS3ControlTests/EndpointResolverTest.swift index 5f152b361ed..82721a798eb 100644 --- a/Tests/Services/AWSS3ControlTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSS3ControlTests/EndpointResolverTest.swift @@ -26,9 +26,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -60,9 +60,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -94,9 +94,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -128,9 +128,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -162,9 +162,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -196,9 +196,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -230,9 +230,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -264,9 +264,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -298,9 +298,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -332,9 +332,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -366,9 +366,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -400,9 +400,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -434,9 +434,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -468,9 +468,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -500,9 +500,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -531,9 +531,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -563,9 +563,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -594,9 +594,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -626,9 +626,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -788,9 +788,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -821,9 +821,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -879,9 +879,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -912,9 +912,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -991,9 +991,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1023,9 +1023,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1058,9 +1058,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1091,9 +1091,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1124,9 +1124,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1200,9 +1200,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1233,9 +1233,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1266,9 +1266,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1299,9 +1299,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1332,9 +1332,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1386,9 +1386,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1419,9 +1419,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1452,9 +1452,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1485,9 +1485,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1518,9 +1518,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1572,9 +1572,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1605,9 +1605,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1638,9 +1638,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1671,9 +1671,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1704,9 +1704,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1842,9 +1842,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1873,9 +1873,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1904,9 +1904,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1935,9 +1935,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1962,9 +1962,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1990,9 +1990,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2018,9 +2018,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2047,9 +2047,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2074,9 +2074,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2124,9 +2124,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2176,9 +2176,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2207,9 +2207,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2237,9 +2237,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2325,9 +2325,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2354,9 +2354,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2383,9 +2383,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2412,9 +2412,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2584,9 +2584,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2616,9 +2616,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2781,9 +2781,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2859,9 +2859,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2892,9 +2892,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSS3Tests/EndpointResolverTest.swift b/Tests/Services/AWSS3Tests/EndpointResolverTest.swift index cfdd8adc9a7..6ccb3864853 100644 --- a/Tests/Services/AWSS3Tests/EndpointResolverTest.swift +++ b/Tests/Services/AWSS3Tests/EndpointResolverTest.swift @@ -151,9 +151,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -293,9 +293,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -325,9 +325,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -357,11 +357,11 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, + "name": "sigv4a", + "signingName": "s3", "signingRegionSet": [ "*" - ] as [AnyHashable], - "name": "sigv4a", - "signingName": "s3" + ] as [AnyHashable] ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -479,9 +479,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -555,9 +555,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -608,9 +608,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -639,9 +639,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -671,9 +671,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -703,9 +703,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -735,9 +735,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -789,9 +789,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -844,9 +844,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -877,9 +877,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -905,9 +905,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -933,9 +933,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -961,9 +961,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -989,9 +989,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1018,9 +1018,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1066,9 +1066,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1097,9 +1097,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1128,9 +1128,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1159,9 +1159,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1190,9 +1190,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1221,9 +1221,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1253,9 +1253,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1285,9 +1285,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1316,9 +1316,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1346,9 +1346,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1376,9 +1376,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1406,9 +1406,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1436,9 +1436,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1466,9 +1466,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1498,9 +1498,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1529,9 +1529,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1560,9 +1560,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1591,9 +1591,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1622,9 +1622,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1653,9 +1653,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1685,9 +1685,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1717,9 +1717,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1749,9 +1749,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1781,9 +1781,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1813,9 +1813,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1845,9 +1845,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1878,9 +1878,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1910,9 +1910,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1964,9 +1964,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -1997,9 +1997,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2030,9 +2030,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2063,9 +2063,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2096,9 +2096,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2130,9 +2130,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2162,9 +2162,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2209,9 +2209,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2241,9 +2241,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2273,9 +2273,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2305,9 +2305,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2337,9 +2337,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2369,9 +2369,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2401,9 +2401,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2433,9 +2433,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2487,9 +2487,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2519,9 +2519,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2595,9 +2595,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2627,9 +2627,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2659,9 +2659,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2691,9 +2691,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2723,9 +2723,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2755,9 +2755,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2809,9 +2809,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2885,9 +2885,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2939,9 +2939,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -2970,9 +2970,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3002,9 +3002,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3078,9 +3078,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3132,9 +3132,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3163,9 +3163,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3195,9 +3195,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3271,9 +3271,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3325,9 +3325,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3356,9 +3356,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3389,9 +3389,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3422,9 +3422,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3524,9 +3524,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3557,9 +3557,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3590,9 +3590,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3692,9 +3692,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3725,9 +3725,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3758,9 +3758,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3860,9 +3860,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3892,9 +3892,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3924,9 +3924,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3978,9 +3978,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4010,9 +4010,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4108,9 +4108,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4140,9 +4140,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4194,9 +4194,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "af-south-1", "name": "sigv4", - "signingName": "s3" + "signingName": "s3", + "signingRegion": "af-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4225,9 +4225,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4257,9 +4257,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4337,9 +4337,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4369,9 +4369,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4424,9 +4424,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4540,9 +4540,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4572,9 +4572,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4604,9 +4604,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4636,9 +4636,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4668,9 +4668,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4722,9 +4722,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4820,9 +4820,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -4852,9 +4852,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-gov-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5127,9 +5127,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5181,9 +5181,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5213,9 +5213,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-2", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5244,9 +5244,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5275,9 +5275,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5390,9 +5390,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east.special", "name": "sigv4", - "signingName": "s3-object-lambda" + "signingName": "s3-object-lambda", + "signingRegion": "us-east.special" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5421,9 +5421,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-west-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5452,9 +5452,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "ap-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "ap-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5483,9 +5483,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5514,9 +5514,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "me-south-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "me-south-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5546,9 +5546,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -5578,9 +5578,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { "authSchemes": [ [ "disableDoubleEncoding": true, - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "s3-outposts" + "signingName": "s3-outposts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSS3Tests/PutObjectRequestTest.swift b/Tests/Services/AWSS3Tests/PutObjectRequestTest.swift index d8617f2e102..d2d3c7e9d8f 100644 --- a/Tests/Services/AWSS3Tests/PutObjectRequestTest.swift +++ b/Tests/Services/AWSS3Tests/PutObjectRequestTest.swift @@ -35,7 +35,6 @@ class PutObjectRequestTest: HttpRequestTestBase { bucket: "mybucket", key: "mykey" ) - let endpointParams = EndpointParams(bucket: "mybucket", forcePathStyle: true, region: "us-west-2") let encoder = ClientRuntime.XMLEncoder() encoder.dateEncodingStrategy = .secondsSince1970 encoder.nonConformingFloatEncodingStrategy = .convertToString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") @@ -46,7 +45,13 @@ class PutObjectRequestTest: HttpRequestTestBase { var operationStack = OperationStack(id: "PutObjectDefaultContentType") operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware(urlPrefix: urlPrefix)) operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(host: hostOnly)) - operationStack.buildStep.intercept(position: .after, middleware: EndpointResolverMiddleware(endpointResolver: try DefaultEndpointResolver(), endpointParams: endpointParams)) + operationStack.buildStep.intercept(position: .after, id: "RequestTestEndpointResolver") { (context, input, next) -> ClientRuntime.OperationOutput in + input.withMethod(context.getMethod()) + input.withPath(context.getPath()) + let host = "\(context.getHostPrefix() ?? "")\(context.getHost() ?? "")" + input.withHost(host) + return try await next.handle(context: context, input: input) + } operationStack.serializeStep.intercept(position: .after, middleware: ClientRuntime.HeaderMiddleware()) operationStack.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operationStack.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/octet-stream")) @@ -103,7 +108,6 @@ class PutObjectRequestTest: HttpRequestTestBase { contentType: "application/json", key: "mykey" ) - let endpointParams = EndpointParams(bucket: "mybucket", forcePathStyle: true, region: "us-west-2") let encoder = ClientRuntime.XMLEncoder() encoder.dateEncodingStrategy = .secondsSince1970 encoder.nonConformingFloatEncodingStrategy = .convertToString(positiveInfinity: "Infinity", negativeInfinity: "-Infinity", nan: "NaN") @@ -114,7 +118,13 @@ class PutObjectRequestTest: HttpRequestTestBase { var operationStack = OperationStack(id: "PutOtTbjectExplicitContenype") operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware(urlPrefix: urlPrefix)) operationStack.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware(host: hostOnly)) - operationStack.buildStep.intercept(position: .after, middleware: EndpointResolverMiddleware(endpointResolver: try DefaultEndpointResolver(), endpointParams: endpointParams)) + operationStack.buildStep.intercept(position: .after, id: "RequestTestEndpointResolver") { (context, input, next) -> ClientRuntime.OperationOutput in + input.withMethod(context.getMethod()) + input.withPath(context.getPath()) + let host = "\(context.getHostPrefix() ?? "")\(context.getHost() ?? "")" + input.withHost(host) + return try await next.handle(context: context, input: input) + } operationStack.serializeStep.intercept(position: .after, middleware: ClientRuntime.HeaderMiddleware()) operationStack.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operationStack.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/octet-stream")) diff --git a/Tests/Services/AWSSTSTests/EndpointResolverTest.swift b/Tests/Services/AWSSTSTests/EndpointResolverTest.swift index a60bd3fa6a7..847df7ec088 100644 --- a/Tests/Services/AWSSTSTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSSTSTests/EndpointResolverTest.swift @@ -980,9 +980,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3066,9 +3066,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3095,9 +3095,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3124,9 +3124,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3153,9 +3153,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3182,9 +3182,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3211,9 +3211,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3240,9 +3240,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3269,9 +3269,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3298,9 +3298,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3327,9 +3327,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3356,9 +3356,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3385,9 +3385,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3414,9 +3414,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3443,9 +3443,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3472,9 +3472,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3501,9 +3501,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -3530,9 +3530,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-3", "name": "sigv4", - "signingName": "sts" + "signingName": "sts", + "signingRegion": "us-east-3" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSSavingsplansTests/EndpointResolverTest.swift b/Tests/Services/AWSSavingsplansTests/EndpointResolverTest.swift index cbab96814ed..d3be985c35f 100644 --- a/Tests/Services/AWSSavingsplansTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSSavingsplansTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "savingsplans" + "signingName": "savingsplans", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSShieldTests/EndpointResolverTest.swift b/Tests/Services/AWSShieldTests/EndpointResolverTest.swift index 007ca770f69..8f63840a81d 100644 --- a/Tests/Services/AWSShieldTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSShieldTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "shield" + "signingName": "shield", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSSupportTests/EndpointResolverTest.swift b/Tests/Services/AWSSupportTests/EndpointResolverTest.swift index 35ef5376619..70ab66520c9 100644 --- a/Tests/Services/AWSSupportTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSSupportTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "cn-north-1", "name": "sigv4", - "signingName": "support" + "signingName": "support", + "signingRegion": "cn-north-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -50,9 +50,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "support" + "signingName": "support", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -78,9 +78,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-iso-east-1", "name": "sigv4", - "signingName": "support" + "signingName": "support", + "signingRegion": "us-iso-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -186,9 +186,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-isob-east-1", "name": "sigv4", - "signingName": "support" + "signingName": "support", + "signingRegion": "us-isob-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] @@ -214,9 +214,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-gov-west-1", "name": "sigv4", - "signingName": "support" + "signingName": "support", + "signingRegion": "us-gov-west-1" ] as [String: AnyHashable] ] as [AnyHashable] ] diff --git a/Tests/Services/AWSWAFTests/EndpointResolverTest.swift b/Tests/Services/AWSWAFTests/EndpointResolverTest.swift index 22d36b5413f..108f55b02a5 100644 --- a/Tests/Services/AWSWAFTests/EndpointResolverTest.swift +++ b/Tests/Services/AWSWAFTests/EndpointResolverTest.swift @@ -22,9 +22,9 @@ class EndpointResolverTest: CrtXCBaseTestCase { [ "authSchemes": [ [ - "signingRegion": "us-east-1", "name": "sigv4", - "signingName": "waf" + "signingName": "waf", + "signingRegion": "us-east-1" ] as [String: AnyHashable] ] as [AnyHashable] ] From 1e699b4ea88d38ca9670b3c6c135c3e13c9ac8d6 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Wed, 18 Jan 2023 20:42:38 -0600 Subject: [PATCH 8/8] Empty commit to reinitiate CI